// 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 _XFA_PARSER_H | |
#define _XFA_PARSER_H | |
class IFX_Stream; | |
class IXFA_Parser { | |
public: | |
static IXFA_Parser* Create(IXFA_ObjFactory* pFactory, | |
FX_BOOL bDocumentParser = FALSE); | |
virtual ~IXFA_Parser() {} | |
virtual void Release() = 0; | |
virtual int32_t StartParse(IFX_FileRead* pStream, | |
XFA_XDPPACKET ePacketID = XFA_XDPPACKET_XDP) = 0; | |
virtual int32_t DoParse(IFX_Pause* pPause = NULL) = 0; | |
virtual int32_t ParseXMLData(const CFX_WideString& wsXML, | |
IFDE_XMLNode*& pXMLNode, | |
IFX_Pause* pPause = NULL) = 0; | |
virtual void ConstructXFANode(CXFA_Node* pXFANode, | |
IFDE_XMLNode* pXMLNode) = 0; | |
virtual IXFA_ObjFactory* GetFactory() const = 0; | |
virtual CXFA_Node* GetRootNode() const = 0; | |
virtual IFDE_XMLDoc* GetXMLDoc() const = 0; | |
virtual void CloseParser() = 0; | |
}; | |
class IXFA_DocParser : public IXFA_Parser { | |
public: | |
static IXFA_DocParser* Create(IXFA_Notify* pNotify); | |
virtual CXFA_Document* GetDocument() const = 0; | |
virtual IXFA_Notify* GetNotify() const = 0; | |
}; | |
#endif |