summaryrefslogtreecommitdiffabout
path: root/include
authorMichael Krelin <hacker@klever.net>2008-01-05 19:39:07 (UTC)
committer Michael Krelin <hacker@klever.net>2008-01-05 22:03:51 (UTC)
commit7bde7f66284b47a75bbceadc360e7f03550ace21 (patch) (unidiff)
tree401b24fc8b952fee21ad3dce117d4baf99048c9f /include
parent8e3f9231383194d94e41032b64d87cc6ef1c2ee8 (diff)
downloadlibopkele-7bde7f66284b47a75bbceadc360e7f03550ace21.zip
libopkele-7bde7f66284b47a75bbceadc360e7f03550ace21.tar.gz
libopkele-7bde7f66284b47a75bbceadc360e7f03550ace21.tar.bz2
discovery: stop parser with XML_StopParser()
Signed-off-by: Michael Krelin <hacker@klever.net>
Diffstat (limited to 'include') (more/less context) (ignore whitespace changes)
-rw-r--r--include/opkele/expat.h6
1 files changed, 4 insertions, 2 deletions
diff --git a/include/opkele/expat.h b/include/opkele/expat.h
index 60c41ac..97ed61a 100644
--- a/include/opkele/expat.h
+++ b/include/opkele/expat.h
@@ -1,75 +1,77 @@
1#ifndef __OPKELE_EXPAT_H 1#ifndef __OPKELE_EXPAT_H
2#define __OPKELE_EXPAT_H 2#define __OPKELE_EXPAT_H
3 3
4#include <cassert> 4#include <cassert>
5#include <expat.h> 5#include <expat.h>
6 6
7namespace opkele { 7namespace opkele {
8 8
9 namespace util { 9 namespace util {
10 10
11 class expat_t { 11 class expat_t {
12 public: 12 public:
13 XML_Parser _x; 13 XML_Parser _x;
14 14
15 expat_t() : _x(0) { } 15 expat_t() : _x(0) { }
16 expat_t(XML_Parser x) : _x(x) { } 16 expat_t(XML_Parser x) : _x(x) { }
17 virtual ~expat_t() throw(); 17 virtual ~expat_t() throw();
18 18
19 expat_t& operator=(XML_Parser x); 19 expat_t& operator=(XML_Parser x);
20 20
21 operator const XML_Parser(void) const { return _x; } 21 operator const XML_Parser(void) const { return _x; }
22 operator XML_Parser(void) { return _x; } 22 operator XML_Parser(void) { return _x; }
23 23
24 inline bool parse(const char *s,int len,bool final=false) { 24 inline bool parse(const char *s,int len,bool final=false) {
25 assert(_x); 25 assert(_x);
26 return XML_Parse(_x,s,len,final); 26 return XML_Parse(_x,s,len,final); }
27 } 27 enum XML_Status stop_parser(bool resumable=false) {
28 assert(_x);
29 return XML_StopParser(_x,resumable); }
28 30
29 virtual void start_element(const XML_Char *n,const XML_Char **a) { } 31 virtual void start_element(const XML_Char *n,const XML_Char **a) { }
30 virtual void end_element(const XML_Char *n) { } 32 virtual void end_element(const XML_Char *n) { }
31 void set_element_handler(); 33 void set_element_handler();
32 34
33 virtual void character_data(const XML_Char *s,int l) { } 35 virtual void character_data(const XML_Char *s,int l) { }
34 void set_character_data_handler(); 36 void set_character_data_handler();
35 37
36 virtual void processing_instruction(const XML_Char *t,const XML_Char *d) { } 38 virtual void processing_instruction(const XML_Char *t,const XML_Char *d) { }
37 void set_processing_instruction_handler(); 39 void set_processing_instruction_handler();
38 40
39 virtual void comment(const XML_Char *d) { } 41 virtual void comment(const XML_Char *d) { }
40 void set_comment_handler(); 42 void set_comment_handler();
41 43
42 virtual void start_cdata_section() { } 44 virtual void start_cdata_section() { }
43 virtual void end_cdata_section() { } 45 virtual void end_cdata_section() { }
44 void set_cdata_section_handler(); 46 void set_cdata_section_handler();
45 47
46 virtual void default_handler(const XML_Char *s,int l) { } 48 virtual void default_handler(const XML_Char *s,int l) { }
47 void set_default_handler(); 49 void set_default_handler();
48 void set_default_handler_expand(); 50 void set_default_handler_expand();
49 51
50 virtual void start_namespace_decl(const XML_Char *p,const XML_Char *u) { } 52 virtual void start_namespace_decl(const XML_Char *p,const XML_Char *u) { }
51 virtual void end_namespace_decl(const XML_Char *p) { } 53 virtual void end_namespace_decl(const XML_Char *p) { }
52 void set_namespace_decl_handler(); 54 void set_namespace_decl_handler();
53 55
54 inline enum XML_Error get_error_code() { 56 inline enum XML_Error get_error_code() {
55 assert(_x); return XML_GetErrorCode(_x); } 57 assert(_x); return XML_GetErrorCode(_x); }
56 static inline const XML_LChar *error_string(XML_Error c) { 58 static inline const XML_LChar *error_string(XML_Error c) {
57 return XML_ErrorString(c); } 59 return XML_ErrorString(c); }
58 60
59 inline long get_current_byte_index() { 61 inline long get_current_byte_index() {
60 assert(_x); return XML_GetCurrentByteIndex(_x); } 62 assert(_x); return XML_GetCurrentByteIndex(_x); }
61 inline int get_current_line_number() { 63 inline int get_current_line_number() {
62 assert(_x); return XML_GetCurrentLineNumber(_x); } 64 assert(_x); return XML_GetCurrentLineNumber(_x); }
63 inline int get_current_column_number() { 65 inline int get_current_column_number() {
64 assert(_x); return XML_GetCurrentColumnNumber(_x); } 66 assert(_x); return XML_GetCurrentColumnNumber(_x); }
65 67
66 inline void set_user_data() { 68 inline void set_user_data() {
67 assert(_x); XML_SetUserData(_x,this); } 69 assert(_x); XML_SetUserData(_x,this); }
68 70
69 inline bool set_base(const XML_Char *b) { 71 inline bool set_base(const XML_Char *b) {
70 assert(_x); return XML_SetBase(_x,b); } 72 assert(_x); return XML_SetBase(_x,b); }
71 inline const XML_Char *get_base() { 73 inline const XML_Char *get_base() {
72 assert(_x); return XML_GetBase(_x); } 74 assert(_x); return XML_GetBase(_x); }
73 75
74 inline int get_specified_attribute_count() { 76 inline int get_specified_attribute_count() {
75 assert(_x); return XML_GetSpecifiedAttributeCount(_x); } 77 assert(_x); return XML_GetSpecifiedAttributeCount(_x); }