diff options
Diffstat (limited to 'gpr/source/lib/xmp_core/ExpatAdapter.hpp')
-rw-r--r-- | gpr/source/lib/xmp_core/ExpatAdapter.hpp | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/gpr/source/lib/xmp_core/ExpatAdapter.hpp b/gpr/source/lib/xmp_core/ExpatAdapter.hpp new file mode 100644 index 0000000..4e03436 --- /dev/null +++ b/gpr/source/lib/xmp_core/ExpatAdapter.hpp @@ -0,0 +1,59 @@ +#ifndef __ExpatAdapter_hpp__ +#define __ExpatAdapter_hpp__ + +// ================================================================================================= +// Copyright 2005 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 "public/include/XMP_Environment.h" // ! Must be the first #include! +#include "XMLParserAdapter.hpp" + +// ================================================================================================= +// Derived XML parser adapter for Expat. +// ================================================================================================= + +#ifndef BanAllEntityUsage + #define BanAllEntityUsage 0 +#endif + +struct XML_ParserStruct; // ! Hack to avoid exposing expat.h to all clients. +typedef struct XML_ParserStruct *XML_Parser; + +class ExpatAdapter : public XMLParserAdapter { +public: + + XML_Parser parser; + XMP_NamespaceTable * registeredNamespaces; + + #if BanAllEntityUsage + bool isAborted; + #endif + + #if XMP_DebugBuild + size_t elemNesting; + #endif + + static const bool kUseGlobalNamespaces = true; + static const bool kUseLocalNamespaces = false; + + ExpatAdapter ( bool useGlobalNamespaces ); + virtual ~ExpatAdapter(); + + void ParseBuffer ( const void * buffer, size_t length, bool last = true ); + +private: + + ExpatAdapter() : registeredNamespaces(0) {}; // ! Force use of constructor with namespace parameter. + +}; + +extern "C" ExpatAdapter * +XMP_PUBLIC XMP_NewExpatAdapter ( bool useGlobalNamespaces ); + +// ================================================================================================= + +#endif // __ExpatAdapter_hpp__ |