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

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

Issue 1990003002: Move fgas_sax into individual files in fde. (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: Created 4 years, 7 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
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_FGAS_XML_FGAS_SAX_H_ 7 #ifndef XFA_FDE_XML_CFX_SAXREADER_H_
8 #define XFA_FGAS_XML_FGAS_SAX_H_ 8 #define XFA_FDE_XML_CFX_SAXREADER_H_
9 9
10 #include "core/fxcrt/include/fx_basic.h" 10 #include "core/fxcrt/include/fx_basic.h"
11 11
12 #define FX_SAXPARSEMODE_NotConvert_amp 0x0001
13 #define FX_SAXPARSEMODE_NotConvert_lt 0x0002
14 #define FX_SAXPARSEMODE_NotConvert_gt 0x0004
15 #define FX_SAXPARSEMODE_NotConvert_apos 0x0008
16 #define FX_SAXPARSEMODE_NotConvert_quot 0x0010
17 #define FX_SAXPARSEMODE_NotConvert_sharp 0x0020
18 #define FX_SAXPARSEMODE_NotSkipSpace 0x0100
19
20 enum FX_SAXNODE {
21 FX_SAXNODE_Unknown = 0,
22 FX_SAXNODE_Instruction,
23 FX_SAXNODE_Declaration,
24 FX_SAXNODE_Comment,
25 FX_SAXNODE_Tag,
26 FX_SAXNODE_Text,
27 FX_SAXNODE_CharData,
28 };
29
30 enum FX_SAXMODE {
31 FX_SAXMODE_Text = 0,
32 FX_SAXMODE_NodeStart,
33 FX_SAXMODE_DeclOrComment,
34 FX_SAXMODE_DeclNode,
35 FX_SAXMODE_Comment,
36 FX_SAXMODE_CommentContent,
37 FX_SAXMODE_TagName,
38 FX_SAXMODE_TagAttributeName,
39 FX_SAXMODE_TagAttributeEqual,
40 FX_SAXMODE_TagAttributeValue,
41 FX_SAXMODE_TagMaybeClose,
42 FX_SAXMODE_TagClose,
43 FX_SAXMODE_TagEnd,
44 FX_SAXMODE_TargetData,
45 FX_SAXMODE_MAX,
46 };
47
48 class CXFA_SAXReaderHandler;
49
50 class CFX_SAXFile { 12 class CFX_SAXFile {
51 public: 13 public:
52 CFX_SAXFile(); 14 CFX_SAXFile();
53 FX_BOOL StartFile(IFX_FileRead* pFile, uint32_t dwStart, uint32_t dwLen); 15 FX_BOOL StartFile(IFX_FileRead* pFile, uint32_t dwStart, uint32_t dwLen);
54 FX_BOOL ReadNextBlock(); 16 FX_BOOL ReadNextBlock();
55 void Reset(); 17 void Reset();
56 IFX_FileRead* m_pFile; 18 IFX_FileRead* m_pFile;
57 uint32_t m_dwStart; 19 uint32_t m_dwStart;
58 uint32_t m_dwEnd; 20 uint32_t m_dwEnd;
59 uint32_t m_dwCur; 21 uint32_t m_dwCur;
60 uint8_t* m_pBuf; 22 uint8_t* m_pBuf;
61 uint32_t m_dwBufSize; 23 uint32_t m_dwBufSize;
62 uint32_t m_dwBufIndex; 24 uint32_t m_dwBufIndex;
63 }; 25 };
64 26
65 class CFX_SAXItem { 27 class CFX_SAXCommentContext;
66 public: 28 class CFX_SAXItem;
67 CFX_SAXItem() 29 enum class CFX_SaxMode;
68 : m_pNode(NULL), 30
69 m_eNode(FX_SAXNODE_Unknown), 31 enum CFX_SaxParseMode {
70 m_dwID(0), 32 CFX_SaxParseMode_NotConvert_amp = 1 << 0,
71 m_bSkip(FALSE), 33 CFX_SaxParseMode_NotConvert_lt = 1 << 1,
72 m_pPrev(NULL), 34 CFX_SaxParseMode_NotConvert_gt = 1 << 2,
73 m_pNext(NULL) {} 35 CFX_SaxParseMode_NotConvert_apos = 1 << 3,
74 void* m_pNode; 36 CFX_SaxParseMode_NotConvert_quot = 1 << 4,
75 FX_SAXNODE m_eNode; 37 CFX_SaxParseMode_NotConvert_sharp = 1 << 5,
76 uint32_t m_dwID; 38 CFX_SaxParseMode_NotSkipSpace = 1 << 6
77 FX_BOOL m_bSkip;
78 CFX_SAXItem* m_pPrev;
79 CFX_SAXItem* m_pNext;
80 }; 39 };
81 40
82 class CFX_SAXCommentContext { 41 enum class CFX_SaxNode {
Tom Sepez 2016/05/18 20:14:12 Feels like this should be nested inside some other
dsinclair 2016/05/18 20:24:52 Done.
83 public: 42 Unknown = 0,
84 CFX_SAXCommentContext() : m_iHeaderCount(0), m_iTailCount(0) {} 43 Instruction,
85 int32_t m_iHeaderCount; 44 Declaration,
86 int32_t m_iTailCount; 45 Comment,
46 Tag,
47 Text,
48 CharData,
87 }; 49 };
88 50
51 class CXFA_SAXReaderHandler;
52
89 class CFX_SAXReader { 53 class CFX_SAXReader {
90 public: 54 public:
91 CFX_SAXReader(); 55 CFX_SAXReader();
92 ~CFX_SAXReader(); 56 ~CFX_SAXReader();
93 57
94 void Release() { delete this; } 58 void Release() { delete this; }
95 int32_t StartParse(IFX_FileRead* pFile, 59 int32_t StartParse(IFX_FileRead* pFile,
96 uint32_t dwStart = 0, 60 uint32_t dwStart = 0,
97 uint32_t dwLen = -1, 61 uint32_t dwLen = -1,
98 uint32_t dwParseMode = 0); 62 uint32_t dwParseMode = 0);
(...skipping 11 matching lines...) Expand all
110 void ParseCommentContent(); 74 void ParseCommentContent();
111 void ParseTagName(); 75 void ParseTagName();
112 void ParseTagAttributeName(); 76 void ParseTagAttributeName();
113 void ParseTagAttributeEqual(); 77 void ParseTagAttributeEqual();
114 void ParseTagAttributeValue(); 78 void ParseTagAttributeValue();
115 void ParseMaybeClose(); 79 void ParseMaybeClose();
116 void ParseTagClose(); 80 void ParseTagClose();
117 void ParseTagEnd(); 81 void ParseTagEnd();
118 void ParseTargetData(); 82 void ParseTargetData();
119 83
120 protected: 84 private:
121 void Reset(); 85 void Reset();
122 void Push(); 86 void Push();
123 void Pop(); 87 void Pop();
124 FX_BOOL SkipSpace(uint8_t ch); 88 FX_BOOL SkipSpace(uint8_t ch);
125 void SkipNode(); 89 void SkipNode();
126 void NotifyData(); 90 void NotifyData();
127 void NotifyEnter(); 91 void NotifyEnter();
128 void NotifyAttribute(); 92 void NotifyAttribute();
129 void NotifyBreak(); 93 void NotifyBreak();
130 void NotifyClose(); 94 void NotifyClose();
131 void NotifyEnd(); 95 void NotifyEnd();
132 void NotifyTargetData(); 96 void NotifyTargetData();
133 void ReallocDataBuffer(); 97 void ReallocDataBuffer();
134 void ReallocNameBuffer(); 98 void ReallocNameBuffer();
135 void ParseChar(uint8_t ch); 99 void ParseChar(uint8_t ch);
136 100
137 CFX_SAXFile m_File; 101 CFX_SAXFile m_File;
138 CXFA_SAXReaderHandler* m_pHandler; 102 CXFA_SAXReaderHandler* m_pHandler;
139 int32_t m_iState; 103 int32_t m_iState;
140 CFX_SAXItem* m_pRoot; 104 CFX_SAXItem* m_pRoot;
141 CFX_SAXItem* m_pCurItem; 105 CFX_SAXItem* m_pCurItem;
142 uint32_t m_dwItemID; 106 uint32_t m_dwItemID;
143 FX_SAXMODE m_eMode; 107 CFX_SaxMode m_eMode;
144 FX_SAXMODE m_ePrevMode; 108 CFX_SaxMode m_ePrevMode;
145 FX_BOOL m_bCharData; 109 FX_BOOL m_bCharData;
146 uint8_t m_CurByte; 110 uint8_t m_CurByte;
147 uint32_t m_dwDataOffset; 111 uint32_t m_dwDataOffset;
148 CFX_ByteArray m_SkipStack; 112 CFX_ByteArray m_SkipStack;
149 uint8_t m_SkipChar; 113 uint8_t m_SkipChar;
150 uint32_t m_dwNodePos; 114 uint32_t m_dwNodePos;
151 uint8_t* m_pszData; 115 uint8_t* m_pszData;
152 int32_t m_iDataSize; 116 int32_t m_iDataSize;
153 int32_t m_iDataLength; 117 int32_t m_iDataLength;
154 int32_t m_iEntityStart; 118 int32_t m_iEntityStart;
155 int32_t m_iDataPos; 119 int32_t m_iDataPos;
156 uint8_t* m_pszName; 120 uint8_t* m_pszName;
157 int32_t m_iNameSize; 121 int32_t m_iNameSize;
158 int32_t m_iNameLength; 122 int32_t m_iNameLength;
159 uint32_t m_dwParseMode; 123 uint32_t m_dwParseMode;
160 CFX_SAXCommentContext* m_pCommentContext; 124 CFX_SAXCommentContext* m_pCommentContext;
161 }; 125 };
162 126
163 #endif // XFA_FGAS_XML_FGAS_SAX_H_ 127 #endif // XFA_FDE_XML_CFX_SAXREADER_H_
OLDNEW
« no previous file with comments | « xfa.gyp ('k') | xfa/fde/xml/cfx_saxreader.cpp » ('j') | xfa/fde/xml/cfx_saxreader.cpp » ('J')

Powered by Google App Engine
This is Rietveld 408576698