summaryrefslogtreecommitdiff
path: root/xfa/src/fxfa/src/common/xfa_parser.h
blob: 2b1f1e62a8600cff5e6bfe76bf0c202e501809d0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
// 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 void					Release() = 0;
    virtual FX_INT32				StartParse(IFX_FileRead *pStream, XFA_XDPPACKET ePacketID = XFA_XDPPACKET_XDP) = 0;
    virtual FX_INT32				DoParse(IFX_Pause *pPause = NULL) = 0;
    virtual FX_INT32				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;
};
class IXFA_DataLoaderOptionsProvider
{
public:
    static IXFA_DataLoaderOptionsProvider*	Create(CXFA_Node* pConfigurationDOM);
    virtual void							Release() = 0;
};
#endif