diff options
author | Dan Sinclair <dsinclair@chromium.org> | 2017-03-30 14:33:28 -0400 |
---|---|---|
committer | Chromium commit bot <commit-bot@chromium.org> | 2017-03-30 20:23:52 +0000 |
commit | 908c848202ef137e98d96f82a4eadfae551403b7 (patch) | |
tree | c1b682c4fc8b05c8871cef22d5bdb3af83954691 /core/fxcrt/xml/cxml_parser.h | |
parent | a69665d11d4eaf5f2d17a46e6be7b43f6c0dbfbe (diff) | |
download | pdfium-908c848202ef137e98d96f82a4eadfae551403b7.tar.xz |
Move core/fxcrt XML files to core/fxcrt/xml
This CL moves the other XML files contained in core/fxcrt into the
core/fxcrt/xml directory to contain all the fxcrt XML files in one place.
Change-Id: I9faefb1f311bf167b75dfbb7b9b52f25515e3c31
Reviewed-on: https://pdfium-review.googlesource.com/3378
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Commit-Queue: dsinclair <dsinclair@chromium.org>
Diffstat (limited to 'core/fxcrt/xml/cxml_parser.h')
-rw-r--r-- | core/fxcrt/xml/cxml_parser.h | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/core/fxcrt/xml/cxml_parser.h b/core/fxcrt/xml/cxml_parser.h new file mode 100644 index 0000000000..37f14e9834 --- /dev/null +++ b/core/fxcrt/xml/cxml_parser.h @@ -0,0 +1,55 @@ +// Copyright 2014 PDFium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com + +#ifndef CORE_FXCRT_XML_CXML_PARSER_H_ +#define CORE_FXCRT_XML_CXML_PARSER_H_ + +#include <algorithm> +#include <memory> + +#include "core/fxcrt/fx_stream.h" + +class CFX_UTF8Decoder; +class CXML_Element; + +class CXML_Parser { + public: + CXML_Parser(); + ~CXML_Parser(); + + bool Init(const uint8_t* pBuffer, size_t size); + bool ReadNextBlock(); + bool IsEOF(); + bool HaveAvailData(); + void SkipWhiteSpaces(); + void GetName(CFX_ByteString* space, CFX_ByteString* name); + void GetAttrValue(CFX_WideString& value); + uint32_t GetCharRef(); + void GetTagName(bool bStartTag, + bool* bEndTag, + CFX_ByteString* space, + CFX_ByteString* name); + void SkipLiterals(const CFX_ByteStringC& str); + std::unique_ptr<CXML_Element> ParseElement(CXML_Element* pParent, + bool bStartTag); + void InsertContentSegment(bool bCDATA, + const CFX_WideStringC& content, + CXML_Element* pElement); + void InsertCDATASegment(CFX_UTF8Decoder& decoder, CXML_Element* pElement); + + CFX_RetainPtr<IFX_BufferedReadStream> m_pDataAcc; + FX_FILESIZE m_nOffset; + const uint8_t* m_pBuffer; + size_t m_dwBufferSize; + FX_FILESIZE m_nBufferOffset; + size_t m_dwIndex; +}; + +void FX_XML_SplitQualifiedName(const CFX_ByteStringC& bsFullName, + CFX_ByteStringC& bsSpace, + CFX_ByteStringC& bsName); + +#endif // CORE_FXCRT_XML_CXML_PARSER_H_ |