ulxr::XmlParserBase Class Reference
[Low-level parser classes]

Base class for XML parsing. More...

#include <ulxr_xmlparse_base.h>

Inheritance diagram for ulxr::XmlParserBase:

Inheritance graph
[legend]
List of all members.

Public Types

enum  State { eNone, eUnknown, eXmlParserLast }

Public Member Functions

 XmlParserBase ()
 Constructs a parser.
virtual ~XmlParserBase ()
 Destroys the parser.
bool isComplete () const
 Tests if parsing has completed.
void setComplete (bool comp)
 Sets the complete state.
virtual int parse (const char *buffer, int len, int isFinal)=0
 Parse a pice of xml data.
virtual unsigned getErrorCode () const=0
 Gets the code for the current error.
virtual CppString getErrorString (unsigned code) const =0
 Gets the description for an error code.
virtual int getCurrentLineNumber () const=0
 Gets the line number in the xml data.
virtual int mapToFaultCode (int xpatcode) const =0
 Maps expat error codes to xml-rpc error codes.

Protected Member Functions

void clearStates ()
 Removes all states from the state stack.

Protected Attributes

std::stack< ParserState * > states

Private Attributes

bool complete

Classes

class  ParserState
 Helper class to represent the data of the current parsing step. More...

Detailed Description

Base class for XML parsing.

Definition at line 52 of file ulxr_xmlparse_base.h.


Member Enumeration Documentation

enum ulxr::XmlParserBase::State

Enumerator:
eNone  state after start
eUnknown  unknwon state when an error occured
eXmlParserLast  used to chain next parser class

Definition at line 108 of file ulxr_xmlparse_base.h.


Constructor & Destructor Documentation

ulxr::XmlParserBase::XmlParserBase (  ) 

Constructs a parser.

Definition at line 39 of file ulxr_xmlparse_base.cpp.

References complete, ULXR_PCHAR, and ULXR_TRACE.

ulxr::XmlParserBase::~XmlParserBase (  )  [virtual]

Destroys the parser.

The derived class is responsible for cleaning up stack<ParserState*>.

Definition at line 46 of file ulxr_xmlparse_base.cpp.


Member Function Documentation

bool ulxr::XmlParserBase::isComplete (  )  const

Tests if parsing has completed.

Completed means that all opening tags have been correctly closed.

Returns:
true if completed

Definition at line 60 of file ulxr_xmlparse_base.cpp.

void ulxr::XmlParserBase::setComplete ( bool  comp  ) 

Sets the complete state.

Parameters:
comp true if file read

Definition at line 66 of file ulxr_xmlparse_base.cpp.

virtual int ulxr::XmlParserBase::parse ( const char *  buffer,
int  len,
int  isFinal 
) [pure virtual]

Parse a pice of xml data.

Parameters:
buffer pointer start of next data chunk
len len of this chunk
isFinal true: last call to parser
Returns:
error condition, 0 = ok

Implemented in ulxr::ExpatWrapper, and ulxr::WbXmlParser.

virtual unsigned ulxr::XmlParserBase::getErrorCode (  )  const [pure virtual]

Gets the code for the current error.

Returns:
error code

Implemented in ulxr::ExpatWrapper, and ulxr::WbXmlParser.

virtual CppString ulxr::XmlParserBase::getErrorString ( unsigned  code  )  const [pure virtual]

Gets the description for an error code.

Parameters:
code error code
Returns:
pointer to description

Implemented in ulxr::ExpatWrapper, and ulxr::WbXmlParser.

virtual int ulxr::XmlParserBase::getCurrentLineNumber (  )  const [pure virtual]

Gets the line number in the xml data.

Because the binary data has nothing like a line number, the occurence number of the previous tag is returned.

Returns:
line number

Implemented in ulxr::ExpatWrapper, and ulxr::WbXmlParser.

virtual int ulxr::XmlParserBase::mapToFaultCode ( int  xpatcode  )  const [pure virtual]

Maps expat error codes to xml-rpc error codes.

Parameters:
xpatcode error code from expat
Returns:
the according xml-rpc error

Implemented in ulxr::ExpatWrapper, and ulxr::WbXmlParser.

void ulxr::XmlParserBase::clearStates (  )  [protected]

Removes all states from the state stack.

Definition at line 51 of file ulxr_xmlparse_base.cpp.


Member Data Documentation

std::stack<ParserState*> ulxr::XmlParserBase::states [protected]

Definition at line 187 of file ulxr_xmlparse_base.h.

Referenced by ulxr::ValueParser::ValueParser(), ulxr::ValueParserWb::ValueParserWb(), ulxr::ValueParser::~ValueParser(), and ulxr::ValueParserWb::~ValueParserWb().

bool ulxr::XmlParserBase::complete [private]

Definition at line 191 of file ulxr_xmlparse_base.h.

Referenced by XmlParserBase().


The documentation for this class was generated from the following files:
Generated on Sun Aug 19 20:09:14 2007 for ulxmlrpcpp by  doxygen 1.5.1