author | Michael Krelin <hacker@klever.net> | 2008-01-05 19:39:07 (UTC) |
---|---|---|
committer | Michael Krelin <hacker@klever.net> | 2008-01-05 22:03:51 (UTC) |
commit | 7bde7f66284b47a75bbceadc360e7f03550ace21 (patch) (unidiff) | |
tree | 401b24fc8b952fee21ad3dce117d4baf99048c9f /include | |
parent | 8e3f9231383194d94e41032b64d87cc6ef1c2ee8 (diff) | |
download | libopkele-7bde7f66284b47a75bbceadc360e7f03550ace21.zip libopkele-7bde7f66284b47a75bbceadc360e7f03550ace21.tar.gz libopkele-7bde7f66284b47a75bbceadc360e7f03550ace21.tar.bz2 |
discovery: stop parser with XML_StopParser()
Signed-off-by: Michael Krelin <hacker@klever.net>
-rw-r--r-- | include/opkele/expat.h | 6 |
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 | |||
@@ -2,50 +2,52 @@ | |||
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 | ||
7 | namespace opkele { | 7 | namespace 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) { } |