Merge XFA to PDFium master at 4dc95e7 on 10/28/2014
[pdfium.git] / xfa / src / fxfa / src / common / xfa_parser.h
1 // Copyright 2014 PDFium Authors. All rights reserved.\r
2 // Use of this source code is governed by a BSD-style license that can be\r
3 // found in the LICENSE file.\r
4 \r
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com\r
6 \r
7 #ifndef _XFA_PARSER_H\r
8 #define _XFA_PARSER_H\r
9 class IFX_Stream;\r
10 class IXFA_Parser\r
11 {\r
12 public:\r
13     static IXFA_Parser*                         Create(IXFA_ObjFactory *pFactory, FX_BOOL bDocumentParser = FALSE);\r
14     virtual void                                        Release() = 0;\r
15     virtual FX_INT32                            StartParse(IFX_FileRead *pStream, XFA_XDPPACKET ePacketID = XFA_XDPPACKET_XDP) = 0;\r
16     virtual FX_INT32                            DoParse(IFX_Pause *pPause = NULL) = 0;\r
17     virtual FX_INT32                            ParseXMLData(const CFX_WideString &wsXML, IFDE_XMLNode* &pXMLNode, IFX_Pause *pPause = NULL) = 0;\r
18     virtual void                                        ConstructXFANode(CXFA_Node* pXFANode, IFDE_XMLNode* pXMLNode) = 0;\r
19     virtual IXFA_ObjFactory*            GetFactory() const = 0;\r
20     virtual CXFA_Node*                          GetRootNode() const = 0;\r
21     virtual IFDE_XMLDoc*                        GetXMLDoc() const = 0;\r
22     virtual void                                        CloseParser() = 0;\r
23 };\r
24 class IXFA_DocParser : public IXFA_Parser\r
25 {\r
26 public:\r
27     static IXFA_DocParser*                      Create(IXFA_Notify *pNotify);\r
28     virtual CXFA_Document*                      GetDocument() const = 0;\r
29     virtual IXFA_Notify*                        GetNotify() const = 0;\r
30 };\r
31 class IXFA_DataLoaderOptionsProvider\r
32 {\r
33 public:\r
34     static IXFA_DataLoaderOptionsProvider*      Create(CXFA_Node* pConfigurationDOM);\r
35     virtual void                                                        Release() = 0;\r
36 };\r
37 #endif\r