summaryrefslogtreecommitdiff
path: root/source/XMPCore/XMLParserAdapter.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'source/XMPCore/XMLParserAdapter.hpp')
-rw-r--r--source/XMPCore/XMLParserAdapter.hpp53
1 files changed, 53 insertions, 0 deletions
diff --git a/source/XMPCore/XMLParserAdapter.hpp b/source/XMPCore/XMLParserAdapter.hpp
new file mode 100644
index 0000000..2d78779
--- /dev/null
+++ b/source/XMPCore/XMLParserAdapter.hpp
@@ -0,0 +1,53 @@
+#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__