aboutsummaryrefslogtreecommitdiff
path: root/Src/xml/ifc_xmlreadercallback.h
blob: e13fbdd951b9e239bc5cea6ec653ec5428830df2 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
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