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

Side by Side Diff: xfa/fde/xml/fde_xml_imp.h

Issue 1836353002: Remove IFDE_XML* classes. (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: Created 4 years, 8 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/fde/xml/fde_xml.h ('k') | xfa/fde/xml/fde_xml_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
1 // Copyright 2014 PDFium Authors. All rights reserved. 1 // Copyright 2014 PDFium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6 6
7 #ifndef XFA_FDE_XML_FDE_XML_IMP_H_ 7 #ifndef XFA_FDE_XML_FDE_XML_IMP_H_
8 #define XFA_FDE_XML_FDE_XML_IMP_H_ 8 #define XFA_FDE_XML_FDE_XML_IMP_H_
9 9
10 #include "core/fxcrt/include/fx_system.h" 10 #include "core/fxcrt/include/fx_system.h"
11 #include "xfa/fde/xml/fde_xml.h" 11 #include "xfa/fde/xml/fde_xml.h"
12 #include "xfa/fgas/crt/fgas_memory.h" 12 #include "xfa/fgas/crt/fgas_memory.h"
13 #include "xfa/fgas/crt/fgas_stream.h" 13 #include "xfa/fgas/crt/fgas_stream.h"
14 14
15 class CFDE_BlockBuffer; 15 class CFDE_BlockBuffer;
16 class CFDE_XMLInstruction; 16 class CFDE_XMLInstruction;
17 class CFDE_XMLElement; 17 class CFDE_XMLElement;
18 class CFDE_XMLText; 18 class CFDE_XMLText;
19 class CFDE_XMLDoc; 19 class CFDE_XMLDoc;
20 class IFDE_XMLParser;
21 class CFDE_XMLDOMParser; 20 class CFDE_XMLDOMParser;
21 class CFDE_XMLParser;
22 class CFDE_XMLSAXParser; 22 class CFDE_XMLSAXParser;
23 class CFDE_XMLSyntaxParser; 23 class CFDE_XMLSyntaxParser;
24 24
25 class CFDE_XMLNode : public CFX_Target { 25 class CFDE_XMLNode : public CFX_Target {
26 public: 26 public:
27 enum NodeItem {
28 Root = 0,
29 Parent,
30 FirstSibling,
31 PriorSibling,
32 NextSibling,
33 LastSibling,
34 FirstNeighbor,
35 PriorNeighbor,
36 NextNeighbor,
37 LastNeighbor,
38 FirstChild,
39 LastChild
40 };
41
27 CFDE_XMLNode(); 42 CFDE_XMLNode();
43
28 virtual void Release() { delete this; } 44 virtual void Release() { delete this; }
29 virtual FDE_XMLNODETYPE GetType() const { return FDE_XMLNODE_Unknown; } 45 virtual FDE_XMLNODETYPE GetType() const { return FDE_XMLNODE_Unknown; }
30 virtual int32_t CountChildNodes() const; 46 virtual int32_t CountChildNodes() const;
31 virtual CFDE_XMLNode* GetChildNode(int32_t index) const; 47 virtual CFDE_XMLNode* GetChildNode(int32_t index) const;
32 virtual int32_t GetChildNodeIndex(CFDE_XMLNode* pNode) const; 48 virtual int32_t GetChildNodeIndex(CFDE_XMLNode* pNode) const;
33 virtual CFDE_XMLNode* GetPath(const FX_WCHAR* pPath, 49 virtual CFDE_XMLNode* GetPath(const FX_WCHAR* pPath,
34 int32_t iLength = -1, 50 int32_t iLength = -1,
35 FX_BOOL bQualifiedName = TRUE) const; 51 FX_BOOL bQualifiedName = TRUE) const;
36 virtual int32_t InsertChildNode(CFDE_XMLNode* pNode, int32_t index = -1); 52 virtual int32_t InsertChildNode(CFDE_XMLNode* pNode, int32_t index = -1);
37 virtual void RemoveChildNode(CFDE_XMLNode* pNode); 53 virtual void RemoveChildNode(CFDE_XMLNode* pNode);
38 virtual void DeleteChildren(); 54 virtual void DeleteChildren();
39 virtual CFDE_XMLNode* GetNodeItem(IFDE_XMLNode::NodeItem eItem) const; 55 virtual CFDE_XMLNode* GetNodeItem(CFDE_XMLNode::NodeItem eItem) const;
40 virtual int32_t GetNodeLevel() const; 56 virtual int32_t GetNodeLevel() const;
41 virtual FX_BOOL InsertNodeItem(IFDE_XMLNode::NodeItem eItem, 57 virtual FX_BOOL InsertNodeItem(CFDE_XMLNode::NodeItem eItem,
42 CFDE_XMLNode* pNode); 58 CFDE_XMLNode* pNode);
43 virtual CFDE_XMLNode* RemoveNodeItem(IFDE_XMLNode::NodeItem eItem); 59 virtual CFDE_XMLNode* RemoveNodeItem(CFDE_XMLNode::NodeItem eItem);
44 virtual CFDE_XMLNode* Clone(FX_BOOL bRecursive); 60 virtual CFDE_XMLNode* Clone(FX_BOOL bRecursive);
45 virtual void SaveXMLNode(IFX_Stream* pXMLStream); 61 virtual void SaveXMLNode(IFX_Stream* pXMLStream);
46 62
47 public: 63 public:
48 ~CFDE_XMLNode(); 64 ~CFDE_XMLNode();
49 void CloneChildren(CFDE_XMLNode* pClone); 65 void CloneChildren(CFDE_XMLNode* pClone);
50 CFDE_XMLNode* m_pParent; 66 CFDE_XMLNode* m_pParent;
51 CFDE_XMLNode* m_pChild; 67 CFDE_XMLNode* m_pChild;
52 CFDE_XMLNode* m_pPrior; 68 CFDE_XMLNode* m_pPrior;
53 CFDE_XMLNode* m_pNext; 69 CFDE_XMLNode* m_pNext;
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after
162 }; 178 };
163 class CFDE_XMLDoc : public CFX_Target { 179 class CFDE_XMLDoc : public CFX_Target {
164 public: 180 public:
165 CFDE_XMLDoc(); 181 CFDE_XMLDoc();
166 ~CFDE_XMLDoc(); 182 ~CFDE_XMLDoc();
167 virtual void Release() { delete this; } 183 virtual void Release() { delete this; }
168 virtual FX_BOOL LoadXML(IFX_Stream* pXMLStream, 184 virtual FX_BOOL LoadXML(IFX_Stream* pXMLStream,
169 int32_t iXMLPlaneSize = 8192, 185 int32_t iXMLPlaneSize = 8192,
170 int32_t iTextDataSize = 256, 186 int32_t iTextDataSize = 256,
171 FDE_XMLREADERHANDLER* pHandler = NULL); 187 FDE_XMLREADERHANDLER* pHandler = NULL);
172 virtual FX_BOOL LoadXML(IFDE_XMLParser* pXMLParser); 188 virtual FX_BOOL LoadXML(CFDE_XMLParser* pXMLParser);
173 virtual int32_t DoLoad(IFX_Pause* pPause = NULL); 189 virtual int32_t DoLoad(IFX_Pause* pPause = NULL);
174 virtual void CloseXML(); 190 virtual void CloseXML();
175 virtual CFDE_XMLNode* GetRoot() const { return m_pRoot; } 191 virtual CFDE_XMLNode* GetRoot() const { return m_pRoot; }
176 virtual void SaveXML(IFX_Stream* pXMLStream = NULL, FX_BOOL bSaveBOM = TRUE); 192 virtual void SaveXML(IFX_Stream* pXMLStream = NULL, FX_BOOL bSaveBOM = TRUE);
177 virtual void SaveXMLNode(IFX_Stream* pXMLStream, IFDE_XMLNode* pNode); 193 virtual void SaveXMLNode(IFX_Stream* pXMLStream, CFDE_XMLNode* pNode);
178 194
179 protected: 195 protected:
180 IFX_Stream* m_pStream; 196 IFX_Stream* m_pStream;
181 int32_t m_iStatus; 197 int32_t m_iStatus;
182 CFDE_XMLNode* m_pRoot; 198 CFDE_XMLNode* m_pRoot;
183 IFDE_XMLSyntaxParser* m_pSyntaxParser; 199 CFDE_XMLSyntaxParser* m_pSyntaxParser;
184 IFDE_XMLParser* m_pXMLParser; 200 CFDE_XMLParser* m_pXMLParser;
185 void Reset(FX_BOOL bInitRoot); 201 void Reset(FX_BOOL bInitRoot);
186 void ReleaseParser(); 202 void ReleaseParser();
187 }; 203 };
188 typedef CFX_StackTemplate<CFDE_XMLNode*> CFDE_XMLDOMNodeStack; 204 typedef CFX_StackTemplate<CFDE_XMLNode*> CFDE_XMLDOMNodeStack;
189 class CFDE_XMLDOMParser : public IFDE_XMLParser, public CFX_Target { 205
206 class CFDE_XMLParser {
190 public: 207 public:
191 CFDE_XMLDOMParser(CFDE_XMLNode* pRoot, IFDE_XMLSyntaxParser* pParser); 208 virtual ~CFDE_XMLParser() {}
209
210 virtual void Release() = 0;
211 virtual int32_t DoParser(IFX_Pause* pPause) = 0;
212 };
213
214 class CFDE_XMLDOMParser : public CFDE_XMLParser, public CFX_Target {
215 public:
216 CFDE_XMLDOMParser(CFDE_XMLNode* pRoot, CFDE_XMLSyntaxParser* pParser);
192 ~CFDE_XMLDOMParser(); 217 ~CFDE_XMLDOMParser();
193 218
194 virtual void Release() { delete this; } 219 virtual void Release() { delete this; }
195 virtual int32_t DoParser(IFX_Pause* pPause); 220 virtual int32_t DoParser(IFX_Pause* pPause);
196 221
197 private: 222 private:
198 IFDE_XMLSyntaxParser* m_pParser; 223 CFDE_XMLSyntaxParser* m_pParser;
199 CFDE_XMLNode* m_pParent; 224 CFDE_XMLNode* m_pParent;
200 CFDE_XMLNode* m_pChild; 225 CFDE_XMLNode* m_pChild;
201 CFDE_XMLDOMNodeStack m_NodeStack; 226 CFDE_XMLDOMNodeStack m_NodeStack;
202 CFX_WideString m_ws1; 227 CFX_WideString m_ws1;
203 CFX_WideString m_ws2; 228 CFX_WideString m_ws2;
204 }; 229 };
205 class CFDE_XMLTAG : public CFX_Target { 230 class CFDE_XMLTAG : public CFX_Target {
206 public: 231 public:
207 CFDE_XMLTAG() : eType(FDE_XMLNODE_Unknown) {} 232 CFDE_XMLTAG() : eType(FDE_XMLNODE_Unknown) {}
208 CFDE_XMLTAG(const CFDE_XMLTAG& src) 233 CFDE_XMLTAG(const CFDE_XMLTAG& src)
209 : wsTagName(src.wsTagName), eType(src.eType) {} 234 : wsTagName(src.wsTagName), eType(src.eType) {}
210 CFX_WideString wsTagName; 235 CFX_WideString wsTagName;
211 FDE_XMLNODETYPE eType; 236 FDE_XMLNODETYPE eType;
212 }; 237 };
213 typedef CFX_ObjectStackTemplate<CFDE_XMLTAG> CFDE_XMLTagStack; 238 typedef CFX_ObjectStackTemplate<CFDE_XMLTAG> CFDE_XMLTagStack;
214 class CFDE_XMLSAXParser : public IFDE_XMLParser, public CFX_Target { 239 class CFDE_XMLSAXParser : public CFDE_XMLParser, public CFX_Target {
215 public: 240 public:
216 CFDE_XMLSAXParser(FDE_XMLREADERHANDLER* pHandler, 241 CFDE_XMLSAXParser(FDE_XMLREADERHANDLER* pHandler,
217 IFDE_XMLSyntaxParser* pParser); 242 CFDE_XMLSyntaxParser* pParser);
218 ~CFDE_XMLSAXParser(); 243 ~CFDE_XMLSAXParser();
219 244
220 virtual void Release() { delete this; } 245 virtual void Release() { delete this; }
221 virtual int32_t DoParser(IFX_Pause* pPause); 246 virtual int32_t DoParser(IFX_Pause* pPause);
222 247
223 private: 248 private:
224 void Push(const CFDE_XMLTAG& xmlTag); 249 void Push(const CFDE_XMLTAG& xmlTag);
225 void Pop(); 250 void Pop();
226 FDE_XMLREADERHANDLER* m_pHandler; 251 FDE_XMLREADERHANDLER* m_pHandler;
227 IFDE_XMLSyntaxParser* m_pParser; 252 CFDE_XMLSyntaxParser* m_pParser;
228 CFDE_XMLTagStack m_TagStack; 253 CFDE_XMLTagStack m_TagStack;
229 CFDE_XMLTAG* m_pTagTop; 254 CFDE_XMLTAG* m_pTagTop;
230 CFX_WideString m_ws1; 255 CFX_WideString m_ws1;
231 CFX_WideString m_ws2; 256 CFX_WideString m_ws2;
232 }; 257 };
233 258
234 class CFDE_BlockBuffer : public CFX_Target { 259 class CFDE_BlockBuffer : public CFX_Target {
235 public: 260 public:
236 CFDE_BlockBuffer(int32_t iAllocStep = 1024 * 1024); 261 CFDE_BlockBuffer(int32_t iAllocStep = 1024 * 1024);
237 ~CFDE_BlockBuffer(); 262 ~CFDE_BlockBuffer();
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
278 #define FDE_XMLSYNTAXMODE_EntityDecimal 9 303 #define FDE_XMLSYNTAXMODE_EntityDecimal 9
279 #define FDE_XMLSYNTAXMODE_EntityHex 10 304 #define FDE_XMLSYNTAXMODE_EntityHex 10
280 #define FDE_XMLSYNTAXMODE_CloseInstruction 11 305 #define FDE_XMLSYNTAXMODE_CloseInstruction 11
281 #define FDE_XMLSYNTAXMODE_BreakElement 12 306 #define FDE_XMLSYNTAXMODE_BreakElement 12
282 #define FDE_XMLSYNTAXMODE_CloseElement 13 307 #define FDE_XMLSYNTAXMODE_CloseElement 13
283 #define FDE_XMLSYNTAXMODE_SkipDeclNode 14 308 #define FDE_XMLSYNTAXMODE_SkipDeclNode 14
284 #define FDE_XMLSYNTAXMODE_DeclCharData 15 309 #define FDE_XMLSYNTAXMODE_DeclCharData 15
285 #define FDE_XMLSYNTAXMODE_SkipComment 16 310 #define FDE_XMLSYNTAXMODE_SkipComment 16
286 #define FDE_XMLSYNTAXMODE_SkipCommentOrDecl 17 311 #define FDE_XMLSYNTAXMODE_SkipCommentOrDecl 17
287 #define FDE_XMLSYNTAXMODE_TargetData 18 312 #define FDE_XMLSYNTAXMODE_TargetData 18
288 class CFDE_XMLSyntaxParser : public IFDE_XMLSyntaxParser, public CFX_Target { 313 class CFDE_XMLSyntaxParser : public CFX_Target {
289 public: 314 public:
290 CFDE_XMLSyntaxParser(); 315 CFDE_XMLSyntaxParser();
291 ~CFDE_XMLSyntaxParser(); 316 ~CFDE_XMLSyntaxParser();
292 virtual void Release() { delete this; } 317 void Release() { delete this; }
293 virtual void Init(IFX_Stream* pStream, 318 void Init(IFX_Stream* pStream,
294 int32_t iXMLPlaneSize, 319 int32_t iXMLPlaneSize,
295 int32_t iTextDataSize = 256); 320 int32_t iTextDataSize = 256);
296 virtual uint32_t DoSyntaxParse(); 321 uint32_t DoSyntaxParse();
297 virtual int32_t GetStatus() const; 322 int32_t GetStatus() const;
298 virtual int32_t GetCurrentPos() const { 323 int32_t GetCurrentPos() const {
299 return m_iParsedChars + (m_pStart - m_pBuffer); 324 return m_iParsedChars + (m_pStart - m_pBuffer);
300 } 325 }
301 virtual FX_FILESIZE GetCurrentBinaryPos() const; 326 FX_FILESIZE GetCurrentBinaryPos() const;
302 virtual int32_t GetCurrentNodeNumber() const { return m_iCurrentNodeNum; } 327 int32_t GetCurrentNodeNumber() const { return m_iCurrentNodeNum; }
303 virtual int32_t GetLastNodeNumber() const { return m_iLastNodeNum; } 328 int32_t GetLastNodeNumber() const { return m_iLastNodeNum; }
304 329
305 virtual void GetTargetName(CFX_WideString& wsTarget) const { 330 void GetTargetName(CFX_WideString& wsTarget) const {
306 m_BlockBuffer.GetTextData(wsTarget, 0, m_iTextDataLength); 331 m_BlockBuffer.GetTextData(wsTarget, 0, m_iTextDataLength);
307 } 332 }
308 virtual void GetTagName(CFX_WideString& wsTag) const { 333 void GetTagName(CFX_WideString& wsTag) const {
309 m_BlockBuffer.GetTextData(wsTag, 0, m_iTextDataLength); 334 m_BlockBuffer.GetTextData(wsTag, 0, m_iTextDataLength);
310 } 335 }
311 virtual void GetAttributeName(CFX_WideString& wsAttriName) const { 336 void GetAttributeName(CFX_WideString& wsAttriName) const {
312 m_BlockBuffer.GetTextData(wsAttriName, 0, m_iTextDataLength); 337 m_BlockBuffer.GetTextData(wsAttriName, 0, m_iTextDataLength);
313 } 338 }
314 virtual void GetAttributeValue(CFX_WideString& wsAttriValue) const { 339 void GetAttributeValue(CFX_WideString& wsAttriValue) const {
315 m_BlockBuffer.GetTextData(wsAttriValue, 0, m_iTextDataLength); 340 m_BlockBuffer.GetTextData(wsAttriValue, 0, m_iTextDataLength);
316 } 341 }
317 virtual void GetTextData(CFX_WideString& wsText) const { 342 void GetTextData(CFX_WideString& wsText) const {
318 m_BlockBuffer.GetTextData(wsText, 0, m_iTextDataLength); 343 m_BlockBuffer.GetTextData(wsText, 0, m_iTextDataLength);
319 } 344 }
320 virtual void GetTargetData(CFX_WideString& wsData) const { 345 void GetTargetData(CFX_WideString& wsData) const {
321 m_BlockBuffer.GetTextData(wsData, 0, m_iTextDataLength); 346 m_BlockBuffer.GetTextData(wsData, 0, m_iTextDataLength);
322 } 347 }
323 348
324 protected: 349 protected:
325 IFX_Stream* m_pStream; 350 IFX_Stream* m_pStream;
326 int32_t m_iXMLPlaneSize; 351 int32_t m_iXMLPlaneSize;
327 int32_t m_iCurrentPos; 352 int32_t m_iCurrentPos;
328 int32_t m_iCurrentNodeNum; 353 int32_t m_iCurrentNodeNum;
329 int32_t m_iLastNodeNum; 354 int32_t m_iLastNodeNum;
330 int32_t m_iParsedChars; 355 int32_t m_iParsedChars;
(...skipping 14 matching lines...) Expand all
345 uint32_t m_dwStatus; 370 uint32_t m_dwStatus;
346 uint32_t m_dwMode; 371 uint32_t m_dwMode;
347 FX_WCHAR m_wQuotationMark; 372 FX_WCHAR m_wQuotationMark;
348 int32_t m_iEntityStart; 373 int32_t m_iEntityStart;
349 CFX_DWordStack m_SkipStack; 374 CFX_DWordStack m_SkipStack;
350 FX_WCHAR m_SkipChar; 375 FX_WCHAR m_SkipChar;
351 inline void ParseTextChar(FX_WCHAR ch); 376 inline void ParseTextChar(FX_WCHAR ch);
352 }; 377 };
353 378
354 #endif // XFA_FDE_XML_FDE_XML_IMP_H_ 379 #endif // XFA_FDE_XML_FDE_XML_IMP_H_
OLDNEW
« no previous file with comments | « xfa/fde/xml/fde_xml.h ('k') | xfa/fde/xml/fde_xml_imp.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698