Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(30)

Side by Side Diff: xfa/fxfa/parser/xfa_parser_imp.h

Issue 2129963002: Break xfa_parser_imp apart (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@ixfa_parser
Patch Set: Rebase to master Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « xfa/fxfa/parser/xfa_object_imp.cpp ('k') | xfa/fxfa/parser/xfa_parser_imp.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright 2014 PDFium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6
7 #ifndef XFA_FXFA_PARSER_XFA_PARSER_IMP_H_
8 #define XFA_FXFA_PARSER_XFA_PARSER_IMP_H_
9
10 #include "xfa/fde/xml/fde_xml_imp.h"
11 #include "xfa/fxfa/include/fxfa_basic.h"
12
13 class CXFA_Document;
14 class CXFA_FFNotify;
15 class CXFA_Node;
16 class CXFA_XMLParser;
17
18 class CXFA_SimpleParser {
19 public:
20 CXFA_SimpleParser(CXFA_Document* pFactory, bool bDocumentParser);
21 ~CXFA_SimpleParser();
22
23 int32_t StartParse(IFX_FileRead* pStream,
24 XFA_XDPPACKET ePacketID = XFA_XDPPACKET_XDP);
25 int32_t DoParse(IFX_Pause* pPause = nullptr);
26 int32_t ParseXMLData(const CFX_WideString& wsXML,
27 CFDE_XMLNode*& pXMLNode,
28 IFX_Pause* pPause = nullptr);
29 void ConstructXFANode(CXFA_Node* pXFANode, CFDE_XMLNode* pXMLNode);
30 CXFA_Node* GetRootNode() const;
31 CFDE_XMLDoc* GetXMLDoc() const;
32 void CloseParser();
33
34 protected:
35 CXFA_Node* ParseAsXDPPacket(CFDE_XMLNode* pXMLDocumentNode,
36 XFA_XDPPACKET ePacketID);
37 CXFA_Node* ParseAsXDPPacket_XDP(CFDE_XMLNode* pXMLDocumentNode,
38 XFA_XDPPACKET ePacketID);
39 CXFA_Node* ParseAsXDPPacket_Config(CFDE_XMLNode* pXMLDocumentNode,
40 XFA_XDPPACKET ePacketID);
41 CXFA_Node* ParseAsXDPPacket_TemplateForm(CFDE_XMLNode* pXMLDocumentNode,
42 XFA_XDPPACKET ePacketID);
43 CXFA_Node* ParseAsXDPPacket_Data(CFDE_XMLNode* pXMLDocumentNode,
44 XFA_XDPPACKET ePacketID);
45 CXFA_Node* ParseAsXDPPacket_LocaleConnectionSourceSet(
46 CFDE_XMLNode* pXMLDocumentNode,
47 XFA_XDPPACKET ePacketID);
48 CXFA_Node* ParseAsXDPPacket_Xdc(CFDE_XMLNode* pXMLDocumentNode,
49 XFA_XDPPACKET ePacketID);
50 CXFA_Node* ParseAsXDPPacket_User(CFDE_XMLNode* pXMLDocumentNode,
51 XFA_XDPPACKET ePacketID);
52 CXFA_Node* NormalLoader(CXFA_Node* pXFANode,
53 CFDE_XMLNode* pXMLDoc,
54 XFA_XDPPACKET ePacketID,
55 FX_BOOL bUseAttribute = TRUE);
56 CXFA_Node* DataLoader(CXFA_Node* pXFANode,
57 CFDE_XMLNode* pXMLDoc,
58 FX_BOOL bDoTransform);
59 CXFA_Node* UserPacketLoader(CXFA_Node* pXFANode, CFDE_XMLNode* pXMLDoc);
60 void ParseContentNode(CXFA_Node* pXFANode,
61 CFDE_XMLNode* pXMLNode,
62 XFA_XDPPACKET ePacketID);
63 void ParseDataValue(CXFA_Node* pXFANode,
64 CFDE_XMLNode* pXMLNode,
65 XFA_XDPPACKET ePacketID);
66 void ParseDataGroup(CXFA_Node* pXFANode,
67 CFDE_XMLNode* pXMLNode,
68 XFA_XDPPACKET ePacketID);
69 void ParseInstruction(CXFA_Node* pXFANode,
70 CFDE_XMLInstruction* pXMLInstruction,
71 XFA_XDPPACKET ePacketID);
72 void SetFactory(CXFA_Document* pFactory);
73
74 CXFA_XMLParser* m_pXMLParser;
75 CFDE_XMLDoc* m_pXMLDoc;
76 IFX_Stream* m_pStream;
77 IFX_FileRead* m_pFileRead;
78 CXFA_Document* m_pFactory;
79 CXFA_Node* m_pRootNode;
80 XFA_XDPPACKET m_ePacketID;
81 FX_BOOL m_bDocumentParser;
82 friend class CXFA_DocumentParser;
83 };
84
85 class CXFA_DocumentParser {
86 public:
87 explicit CXFA_DocumentParser(CXFA_FFNotify* pNotify);
88 ~CXFA_DocumentParser();
89
90 int32_t StartParse(IFX_FileRead* pStream,
91 XFA_XDPPACKET ePacketID = XFA_XDPPACKET_XDP);
92 int32_t DoParse(IFX_Pause* pPause = nullptr);
93
94 CFDE_XMLDoc* GetXMLDoc() const;
95 CXFA_FFNotify* GetNotify() const;
96 CXFA_Document* GetDocument() const;
97 void CloseParser();
98
99 protected:
100 CXFA_SimpleParser m_nodeParser;
101 CXFA_FFNotify* m_pNotify;
102 std::unique_ptr<CXFA_Document> m_pDocument;
103 };
104
105 class CXFA_XMLParser : public CFDE_XMLParser {
106 public:
107 CXFA_XMLParser(CFDE_XMLNode* pRoot, IFX_Stream* pStream);
108 ~CXFA_XMLParser() override;
109
110 // CFDE_XMLParser
111 void Release() override;
112 int32_t DoParser(IFX_Pause* pPause) override;
113
114 FX_FILESIZE m_nStart[2];
115 size_t m_nSize[2];
116 FX_FILESIZE m_nElementStart;
117 uint16_t m_dwCheckStatus;
118 uint16_t m_dwCurrentCheckStatus;
119
120 protected:
121 CFDE_XMLNode* m_pRoot;
122 IFX_Stream* m_pStream;
123 CFDE_XMLSyntaxParser* m_pParser;
124 CFDE_XMLNode* m_pParent;
125 CFDE_XMLNode* m_pChild;
126 CFX_StackTemplate<CFDE_XMLNode*> m_NodeStack;
127 CFX_WideString m_ws1;
128 CFX_WideString m_ws2;
129 FDE_XmlSyntaxResult m_syntaxParserResult;
130 };
131
132 #endif // XFA_FXFA_PARSER_XFA_PARSER_IMP_H_
OLDNEW
« no previous file with comments | « xfa/fxfa/parser/xfa_object_imp.cpp ('k') | xfa/fxfa/parser/xfa_parser_imp.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698