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

Side by Side Diff: core/fxcrt/xml_int.h

Issue 2060913003: Make code compile with clang_use_chrome_plugin (part II) (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: rebase Created 4 years, 6 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 | « core/fxcrt/include/fx_xml.h ('k') | core/fxge/agg/fx_agg_driver.h » ('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 CORE_FXCRT_XML_INT_H_ 7 #ifndef CORE_FXCRT_XML_INT_H_
8 #define CORE_FXCRT_XML_INT_H_ 8 #define CORE_FXCRT_XML_INT_H_
9 9
10 #include <algorithm> 10 #include <algorithm>
11 11
12 #include "core/fxcrt/include/fx_stream.h" 12 #include "core/fxcrt/include/fx_stream.h"
13 13
14 class CFX_UTF8Decoder; 14 class CFX_UTF8Decoder;
15 class CXML_Element; 15 class CXML_Element;
16 16
17 class CXML_DataBufAcc : public IFX_BufferRead { 17 class CXML_DataBufAcc : public IFX_BufferRead {
18 public: 18 public:
19 CXML_DataBufAcc(const uint8_t* pBuffer, size_t size) 19 CXML_DataBufAcc(const uint8_t* pBuffer, size_t size);
20 : m_pBuffer(pBuffer), m_dwSize(size), m_dwCurPos(0) {} 20 ~CXML_DataBufAcc() override;
21 ~CXML_DataBufAcc() override {}
22 21
23 // IFX_BufferRead 22 // IFX_BufferRead
24 void Release() override { delete this; } 23 void Release() override;
25 FX_BOOL IsEOF() override { return m_dwCurPos >= m_dwSize; } 24 FX_BOOL IsEOF() override;
26 FX_FILESIZE GetPosition() override { return (FX_FILESIZE)m_dwCurPos; } 25 FX_FILESIZE GetPosition() override;
27 size_t ReadBlock(void* buffer, size_t size) override { return 0; } 26 size_t ReadBlock(void* buffer, size_t size) override;
28 FX_BOOL ReadNextBlock(FX_BOOL bRestart = FALSE) override { 27 FX_BOOL ReadNextBlock(FX_BOOL bRestart = FALSE) override;
29 if (bRestart) { 28 const uint8_t* GetBlockBuffer() override;
30 m_dwCurPos = 0; 29 size_t GetBlockSize() override;
31 } 30 FX_FILESIZE GetBlockOffset() override;
32 if (m_dwCurPos < m_dwSize) {
33 m_dwCurPos = m_dwSize;
34 return TRUE;
35 }
36 return FALSE;
37 }
38 const uint8_t* GetBlockBuffer() override { return m_pBuffer; }
39 size_t GetBlockSize() override { return m_dwSize; }
40 FX_FILESIZE GetBlockOffset() override { return 0; }
41 31
42 protected: 32 protected:
43 const uint8_t* m_pBuffer; 33 const uint8_t* m_pBuffer;
44 size_t m_dwSize; 34 size_t m_dwSize;
45 size_t m_dwCurPos; 35 size_t m_dwCurPos;
46 }; 36 };
47 37
48 class CXML_DataStmAcc : public IFX_BufferRead { 38 class CXML_DataStmAcc : public IFX_BufferRead {
49 public: 39 public:
50 explicit CXML_DataStmAcc(IFX_FileRead* pFileRead) 40 explicit CXML_DataStmAcc(IFX_FileRead* pFileRead);
51 : m_pFileRead(pFileRead), m_pBuffer(nullptr), m_nStart(0), m_dwSize(0) { 41 ~CXML_DataStmAcc() override;
52 ASSERT(m_pFileRead);
53 }
54 ~CXML_DataStmAcc() override { FX_Free(m_pBuffer); }
55 42
56 void Release() override { delete this; } 43 // IFX_BufferRead
57 FX_BOOL IsEOF() override { 44 void Release() override;
58 return m_nStart + (FX_FILESIZE)m_dwSize >= m_pFileRead->GetSize(); 45 FX_BOOL IsEOF() override;
59 } 46 FX_FILESIZE GetPosition() override;
60 FX_FILESIZE GetPosition() override { 47 size_t ReadBlock(void* buffer, size_t size) override;
61 return m_nStart + (FX_FILESIZE)m_dwSize; 48 FX_BOOL ReadNextBlock(FX_BOOL bRestart = FALSE) override;
62 } 49 const uint8_t* GetBlockBuffer() override;
63 size_t ReadBlock(void* buffer, size_t size) override { return 0; } 50 size_t GetBlockSize() override;
64 FX_BOOL ReadNextBlock(FX_BOOL bRestart = FALSE) override { 51 FX_FILESIZE GetBlockOffset() override;
65 if (bRestart) {
66 m_nStart = 0;
67 }
68 FX_FILESIZE nLength = m_pFileRead->GetSize();
69 m_nStart += (FX_FILESIZE)m_dwSize;
70 if (m_nStart >= nLength) {
71 return FALSE;
72 }
73 static const FX_FILESIZE FX_XMLDATASTREAM_BufferSize = 32 * 1024;
74 m_dwSize = static_cast<size_t>(
75 std::min(FX_XMLDATASTREAM_BufferSize, nLength - m_nStart));
76 if (!m_pBuffer) {
77 m_pBuffer = FX_Alloc(uint8_t, m_dwSize);
78 }
79 return m_pFileRead->ReadBlock(m_pBuffer, m_nStart, m_dwSize);
80 }
81 const uint8_t* GetBlockBuffer() override { return (const uint8_t*)m_pBuffer; }
82 size_t GetBlockSize() override { return m_dwSize; }
83 FX_FILESIZE GetBlockOffset() override { return m_nStart; }
84 52
85 protected: 53 protected:
86 IFX_FileRead* m_pFileRead; 54 IFX_FileRead* m_pFileRead;
87 uint8_t* m_pBuffer; 55 uint8_t* m_pBuffer;
88 FX_FILESIZE m_nStart; 56 FX_FILESIZE m_nStart;
89 size_t m_dwSize; 57 size_t m_dwSize;
90 }; 58 };
91 59
92 class CXML_Parser { 60 class CXML_Parser {
93 public: 61 public:
62 CXML_Parser();
94 ~CXML_Parser(); 63 ~CXML_Parser();
95 IFX_BufferRead* m_pDataAcc; 64
96 FX_BOOL m_bOwnedStream;
97 FX_FILESIZE m_nOffset;
98 FX_BOOL m_bSaveSpaceChars;
99 const uint8_t* m_pBuffer;
100 size_t m_dwBufferSize;
101 FX_FILESIZE m_nBufferOffset;
102 size_t m_dwIndex;
103 FX_BOOL Init(uint8_t* pBuffer, size_t size); 65 FX_BOOL Init(uint8_t* pBuffer, size_t size);
104 FX_BOOL Init(IFX_FileRead* pFileRead); 66 FX_BOOL Init(IFX_FileRead* pFileRead);
105 FX_BOOL Init(IFX_BufferRead* pBuffer); 67 FX_BOOL Init(IFX_BufferRead* pBuffer);
106 FX_BOOL Init(FX_BOOL bOwndedStream); 68 FX_BOOL Init(FX_BOOL bOwndedStream);
107 FX_BOOL ReadNextBlock(); 69 FX_BOOL ReadNextBlock();
108 FX_BOOL IsEOF(); 70 FX_BOOL IsEOF();
109 FX_BOOL HaveAvailData(); 71 FX_BOOL HaveAvailData();
110 void SkipWhiteSpaces(); 72 void SkipWhiteSpaces();
111 void GetName(CFX_ByteString& space, CFX_ByteString& name); 73 void GetName(CFX_ByteString& space, CFX_ByteString& name);
112 void GetAttrValue(CFX_WideString& value); 74 void GetAttrValue(CFX_WideString& value);
113 uint32_t GetCharRef(); 75 uint32_t GetCharRef();
114 void GetTagName(CFX_ByteString& space, 76 void GetTagName(CFX_ByteString& space,
115 CFX_ByteString& name, 77 CFX_ByteString& name,
116 FX_BOOL& bEndTag, 78 FX_BOOL& bEndTag,
117 FX_BOOL bStartTag = FALSE); 79 FX_BOOL bStartTag = FALSE);
118 void SkipLiterals(const CFX_ByteStringC& str); 80 void SkipLiterals(const CFX_ByteStringC& str);
119 CXML_Element* ParseElement(CXML_Element* pParent, FX_BOOL bStartTag = FALSE); 81 CXML_Element* ParseElement(CXML_Element* pParent, FX_BOOL bStartTag = FALSE);
120 void InsertContentSegment(FX_BOOL bCDATA, 82 void InsertContentSegment(FX_BOOL bCDATA,
121 const CFX_WideStringC& content, 83 const CFX_WideStringC& content,
122 CXML_Element* pElement); 84 CXML_Element* pElement);
123 void InsertCDATASegment(CFX_UTF8Decoder& decoder, CXML_Element* pElement); 85 void InsertCDATASegment(CFX_UTF8Decoder& decoder, CXML_Element* pElement);
86
87 IFX_BufferRead* m_pDataAcc;
88 FX_BOOL m_bOwnedStream;
89 FX_FILESIZE m_nOffset;
90 FX_BOOL m_bSaveSpaceChars;
91 const uint8_t* m_pBuffer;
92 size_t m_dwBufferSize;
93 FX_FILESIZE m_nBufferOffset;
94 size_t m_dwIndex;
124 }; 95 };
125 96
126 void FX_XML_SplitQualifiedName(const CFX_ByteStringC& bsFullName, 97 void FX_XML_SplitQualifiedName(const CFX_ByteStringC& bsFullName,
127 CFX_ByteStringC& bsSpace, 98 CFX_ByteStringC& bsSpace,
128 CFX_ByteStringC& bsName); 99 CFX_ByteStringC& bsName);
129 100
130 #endif // CORE_FXCRT_XML_INT_H_ 101 #endif // CORE_FXCRT_XML_INT_H_
OLDNEW
« no previous file with comments | « core/fxcrt/include/fx_xml.h ('k') | core/fxge/agg/fx_agg_driver.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698