You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
exiv2/xmpsdk/src/XMLParserAdapter.hpp

54 lines
1.6 KiB
C++

#ifndef __XMLParserAdapter_hpp__
#define __XMLParserAdapter_hpp__
// =================================================================================================
// Copyright 2005-2007 Adobe Systems Incorporated
// All Rights Reserved.
//
// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
// of the Adobe license agreement accompanying it.
// =================================================================================================
#include "XMP_Environment.h" // ! Must be the first #include!
#include "XMPCore_Impl.hpp"
// =================================================================================================
// Abstract base class for XML parser adapters used by the XMP toolkit.
// =================================================================================================
enum { kXMLPendingInputMax = 16 };
class XMLParserAdapter {
public:
XMLParserAdapter()
: tree(0,"",kRootNode), rootNode(0), rootCount(0), charEncoding(XMP_OptionBits(-1)), pendingCount(0)
{
#if XMP_DebugBuild
parseLog = 0;
#endif
};
virtual ~XMLParserAdapter() {};
virtual void ParseBuffer ( const void * buffer, size_t length, bool last ) = 0;
XML_Node tree;
XML_NodeVector parseStack;
XML_Node * rootNode;
size_t rootCount;
XMP_OptionBits charEncoding;
size_t pendingCount;
unsigned char pendingInput[kXMLPendingInputMax]; // Buffered input for character encoding checks.
#if XMP_DebugBuild
FILE * parseLog;
#endif
};
// =================================================================================================
#endif // __XMLParserAdapter_hpp__