aboutsummaryrefslogtreecommitdiff
path: root/Src/xml/ifc_xmlreadercallback.h
diff options
context:
space:
mode:
Diffstat (limited to 'Src/xml/ifc_xmlreadercallback.h')
-rw-r--r--Src/xml/ifc_xmlreadercallback.h48
1 files changed, 48 insertions, 0 deletions
diff --git a/Src/xml/ifc_xmlreadercallback.h b/Src/xml/ifc_xmlreadercallback.h
new file mode 100644
index 00000000..e13fbdd9
--- /dev/null
+++ b/Src/xml/ifc_xmlreadercallback.h
@@ -0,0 +1,48 @@
+#ifndef NULLSOFT_XML_IFC_XMLREADERCALLBACK_H
+#define NULLSOFT_XML_IFC_XMLREADERCALLBACK_H
+
+#include <bfc/dispatch.h>
+#include "ifc_xmlreaderparams.h"
+
+class NOVTABLE ifc_xmlreadercallback : public Dispatchable
+{
+protected:
+ ifc_xmlreadercallback() {}
+ ~ifc_xmlreadercallback() {}
+
+public:
+ void xmlReaderOnStartElementCallback( const wchar_t *xmlpath, const wchar_t *xmltag, ifc_xmlreaderparams *params );
+ void xmlReaderOnEndElementCallback( const wchar_t *xmlpath, const wchar_t *xmltag );
+ void xmlReaderOnCharacterDataCallback( const wchar_t *xmlpath, const wchar_t *xmltag, const wchar_t *str );
+ void xmlReaderOnError( int linenum, int errcode, const wchar_t *errstr );
+
+ DISPATCH_CODES
+ {
+ ONSTARTELEMENT = 100,
+ ONENDELEMENT = 200,
+ ONCHARDATA = 300,
+ ONERROR = 1200,
+ };
+};
+
+inline void ifc_xmlreadercallback::xmlReaderOnStartElementCallback( const wchar_t *xmlpath, const wchar_t *xmltag, ifc_xmlreaderparams *params )
+{
+ _voidcall( ONSTARTELEMENT, xmlpath, xmltag, params );
+}
+
+inline void ifc_xmlreadercallback::xmlReaderOnEndElementCallback( const wchar_t *xmlpath, const wchar_t *xmltag )
+{
+ _voidcall( ONENDELEMENT, xmlpath, xmltag );
+}
+
+inline void ifc_xmlreadercallback::xmlReaderOnCharacterDataCallback( const wchar_t *xmlpath, const wchar_t *xmltag, const wchar_t *str )
+{
+ _voidcall( ONCHARDATA, xmlpath, xmltag, str );
+}
+
+inline void ifc_xmlreadercallback::xmlReaderOnError( int linenum, int errcode, const wchar_t *errstr )
+{
+ _voidcall( ONERROR, linenum, errcode, errstr );
+}
+
+#endif