34 #ifndef _MOOT_EXPAT_PARSER_H 35 #define _MOOT_EXPAT_PARSER_H 39 #ifdef MOOT_EXPAT_ENABLED 52 #define MOOT_DEFAULT_EXPAT_BUFLEN 8192 85 assert(parser != NULL);
86 int cb_offset_i, cb_used_i;
87 cb_rdata = XML_GetInputContext(parser, &cb_offset_i, &cb_used_i);
90 cb_used = XML_GetCurrentByteCount(parser);
129 const std::string &encoding=
"");
132 virtual void setEncoding(
const std::string &encoding=
"")
134 xml_encoding = encoding;
142 virtual void reset(
void);
194 throw domain_error(
"from_fd(): not implemented");
203 virtual void from_buffer(
const void *buf,
size_t len);
228 virtual void close(
void);
244 bool parse_file(FILE *infile=stdin,
const std::string &in_name=
"");
291 return parser ?
ContextBuffer(parser).as_string() : std::string(
"");
298 virtual void carp(
const char *fmt, ...);
301 virtual void xpcarp(
const char *fmt, ...);
305 {
return XML_GetCurrentLineNumber(parser); }
309 {
return XML_GetCurrentColumnNumber(parser); }
313 {
return XML_GetCurrentByteIndex(parser); }
317 {
return XML_GetCurrentByteCount(parser); }
327 const XML_Char *encoding,
330 XML_DefaultCurrent(parser);
336 XML_DefaultCurrent(parser);
342 XML_DefaultCurrent(parser);
348 XML_DefaultCurrent(parser);
353 const XML_Char *target,
354 const XML_Char *
data)
356 XML_DefaultCurrent(parser);
362 XML_DefaultCurrent(parser);
369 XML_DefaultCurrent(parser);
375 XML_DefaultCurrent(parser);
390 const XML_Char *version,
391 const XML_Char *encoding,
438 #endif // moot_EXPAT_ENABLED 440 #endif // MOOT_EXPAT_PARSER_H virtual void CommentHandler(const XML_Char *s)
Definition: mootExpatParser.h:371
Definition: mootAssocVector.h:39
int column_number(void)
Definition: mootExpatParser.h:319
std::string xml_encoding
Input encoding override (goofy)
Definition: mootExpatParser.h:115
bool parse_filename(const std::string &filename)
bool parse_all(mootio::mistream *in=__null)
virtual void from_string(const char *s)
Definition: mootExpatParser.h:214
const char * data(void) const
Definition: mootBufferIO.h:174
long int line_number(void)
Definition: mootExpatParser.h:315
bool xp_istream_created
whether input stream mis was created locally
Definition: mootExpatParser.h:107
mootio abstraction layer for C FILE*s
virtual void from_fd(int fd)
Definition: mootExpatParser.h:194
virtual void EndCdataSectionHandler(void)
Definition: mootExpatParser.h:384
size_t xml_buflen
Allocated size of xml_buf.
Definition: mootExpatParser.h:114
static void _xp_XmlDeclHandler(mootExpatParser *mp, const XML_Char *version, const XML_Char *encoding, int standalone)
Definition: mootExpatParser.h:400
size_t cb_offset
current read offset position in buffer
Definition: mootBufferIO.h:64
safely includes autoheader preprocessor macros
virtual void StartCdataSectionHandler(void)
Definition: mootExpatParser.h:378
bool parse_chunk(int &nbytes, int &is_final, mootio::mistream *in=__null)
virtual void from_cxxstream(std::istream &is)
virtual ~mootExpatParser(void)
static void _xp_CharacterDataHandler(mootExpatParser *mp, const XML_Char *s, int len)
Definition: mootExpatParser.h:423
virtual bool close(void)
Definition: mootIO.h:120
virtual void from_mstream(mootio::mistream *mistreamp, bool autoclose=false)
static void _xp_DefaultHandler(mootExpatParser *mp, const XML_Char *s, int len)
Definition: mootExpatParser.h:438
virtual void XmlDeclHandler(const XML_Char *version, const XML_Char *encoding, int standalone)
Definition: mootExpatParser.h:337
virtual void from_buffer(const void *buf, size_t len)
virtual void carp(const char *fmt,...)
~ContextBuffer(void)
Definition: mootExpatParser.h:95
static void _xp_StartElementHandler(mootExpatParser *mp, const char *el, const char **attr)
Definition: mootExpatParser.h:409
virtual void DefaultHandler(const XML_Char *s, int len)
Definition: mootExpatParser.h:390
int byte_count(void)
Definition: mootExpatParser.h:327
virtual void CharacterDataHandler(const XML_Char *s, int len)
Definition: mootExpatParser.h:357
virtual void setEncoding(const std::string &encoding="")
Definition: mootExpatParser.h:135
virtual void from_filename(const char *filename)
Utility class for expat input contexts.
Definition: mootExpatParser.h:69
C++ Wrapper for expat XML parsers.
Definition: mootExpatParser.h:56
mootio abstraction layer for C++ streams
bool parse_file(FILE *infile=stdin, const std::string &in_name="")
size_t cb_used
used length of buffer (in bytes)
Definition: mootBufferIO.h:65
virtual void from_file(FILE *file)
mootExpatParser(size_t bufsize=8192, const std::string &encoding="")
virtual void StartElementHandler(const char *el, const char **attr)
Definition: mootExpatParser.h:345
XML_Parser parser
The underlying expat parser object.
Definition: mootExpatParser.h:117
Namespace for I/O stream wrappers.
Definition: mootBufferIO.h:45
mootio::mistream * xp_istream
Current input stream.
Definition: mootExpatParser.h:106
virtual void EndElementHandler(const char *el)
Definition: mootExpatParser.h:351
mootio abstraction layer for C char* buffers
virtual void xpcarp(const char *fmt,...)
ContextBuffer(const char *buffer, size_t buflen)
Definition: mootExpatParser.h:72
static void _xp_CommentHandler(mootExpatParser *mp, const XML_Char *s)
Definition: mootExpatParser.h:431
long byte_offset(void)
Definition: mootExpatParser.h:323
ContextBuffer(XML_Parser parser)
Definition: mootExpatParser.h:77
virtual void ProcessingInstructionHandler(const XML_Char *s, const XML_Char *target, const XML_Char *data)
Definition: mootExpatParser.h:363
const char * cb_rdata
underlying character data buffer
Definition: mootBufferIO.h:63
Streambuf-like class for input from C char* buffers.
Definition: mootBufferIO.h:60
virtual void context_dump(FILE *tofile=__null)
bool parse_buffer(const char *buf, size_t buflen)
Abstract base class for input stream wrappers.
Definition: mootIO.h:129
char * xml_buf
Parse buffer for expat parser.
Definition: mootExpatParser.h:113
static void _xp_EndElementHandler(mootExpatParser *mp, const char *el)
Definition: mootExpatParser.h:417
virtual bool parse_check(void)
virtual std::string context_string(void)
Definition: mootExpatParser.h:300