blob: 3eb07a87e1f95b4fcacbec35cf1008031de44051 [file] [log] [blame]
// Copyright 2017 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_FDE_XML_CFDE_XMLDOC_H_
#define XFA_FDE_XML_CFDE_XMLDOC_H_
#include <memory>
#include "core/fxcrt/cfx_retain_ptr.h"
#include "xfa/fde/xml/cfde_xmlnode.h"
#include "xfa/fde/xml/cfde_xmlparser.h"
#include "xfa/fgas/crt/ifgas_stream.h"
class CFDE_XMLDoc {
public:
CFDE_XMLDoc();
~CFDE_XMLDoc();
bool LoadXML(std::unique_ptr<CFDE_XMLParser> pXMLParser);
int32_t DoLoad(IFX_Pause* pPause = nullptr);
void CloseXML();
CFDE_XMLNode* GetRoot() const { return m_pRoot.get(); }
void SaveXMLNode(const CFX_RetainPtr<IFGAS_Stream>& pXMLStream,
CFDE_XMLNode* pNode);
private:
int32_t m_iStatus;
std::unique_ptr<CFDE_XMLNode> m_pRoot;
std::unique_ptr<CFDE_XMLParser> m_pXMLParser;
CFX_RetainPtr<IFGAS_Stream> m_pStream;
};
#endif // XFA_FDE_XML_CFDE_XMLDOC_H_