LLSDXMLParser::Impl Class Reference

Collaboration diagram for LLSDXMLParser::Impl:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 Impl ()
 ~Impl ()
S32 parse (std::istream &input, LLSD &data)
void parsePart (const char *buf, int len)

Private Types

typedef std::deque< LLSD * > LLSDRefStack
 ELEMENT_LLSD
 ELEMENT_UNDEF
 ELEMENT_BOOL
 ELEMENT_INTEGER
 ELEMENT_REAL
 ELEMENT_STRING
 ELEMENT_UUID
 ELEMENT_DATE
 ELEMENT_URI
 ELEMENT_BINARY
 ELEMENT_MAP
 ELEMENT_ARRAY
 ELEMENT_KEY
 ELEMENT_UNKNOWN
enum  Element {
  ELEMENT_LLSD, ELEMENT_UNDEF, ELEMENT_BOOL, ELEMENT_INTEGER,
  ELEMENT_REAL, ELEMENT_STRING, ELEMENT_UUID, ELEMENT_DATE,
  ELEMENT_URI, ELEMENT_BINARY, ELEMENT_MAP, ELEMENT_ARRAY,
  ELEMENT_KEY, ELEMENT_UNKNOWN
}

Private Member Functions

void reset ()
void startElementHandler (const XML_Char *name, const XML_Char **attributes)
void endElementHandler (const XML_Char *name)
void characterDataHandler (const XML_Char *data, int length)
void startSkipping ()

Static Private Member Functions

static void sStartElementHandler (void *userData, const XML_Char *name, const XML_Char **attributes)
static void sEndElementHandler (void *userData, const XML_Char *name)
static void sCharacterDataHandler (void *userData, const XML_Char *data, int length)
static Element readElement (const XML_Char *name)
static const XML_Char * findAttribute (const XML_Char *name, const XML_Char **pairs)

Private Attributes

XML_Parser mParser
LLSD mResult
bool mInLLSDElement
bool mGracefullStop
LLSDRefStack mStack
int mDepth
bool mSkipping
int mSkipThrough
std::string mCurrentKey
std::ostringstream mCurrentContent
bool mPreStaged

Detailed Description

Definition at line 258 of file llsdserialize_xml.cpp.


Member Typedef Documentation

typedef std::deque<LLSD*> LLSDXMLParser::Impl::LLSDRefStack [private]

Definition at line 312 of file llsdserialize_xml.cpp.


Member Enumeration Documentation

enum LLSDXMLParser::Impl::Element [private]

Enumerator:
ELEMENT_LLSD 
ELEMENT_UNDEF 
ELEMENT_BOOL 
ELEMENT_INTEGER 
ELEMENT_REAL 
ELEMENT_STRING 
ELEMENT_UUID 
ELEMENT_DATE 
ELEMENT_URI 
ELEMENT_BINARY 
ELEMENT_MAP 
ELEMENT_ARRAY 
ELEMENT_KEY 
ELEMENT_UNKNOWN 

Definition at line 284 of file llsdserialize_xml.cpp.


Constructor & Destructor Documentation

LLSDXMLParser::Impl::Impl (  ) 

Definition at line 326 of file llsdserialize_xml.cpp.

References mParser, mPreStaged, NULL, and reset().

LLSDXMLParser::Impl::~Impl (  ) 

Definition at line 333 of file llsdserialize_xml.cpp.

References mParser.


Member Function Documentation

void LLSDXMLParser::Impl::characterDataHandler ( const XML_Char *  data,
int  length 
) [private]

Definition at line 670 of file llsdserialize_xml.cpp.

References mCurrentContent.

void LLSDXMLParser::Impl::endElementHandler ( const XML_Char *  name  )  [private]

Definition at line 573 of file llsdserialize_xml.cpp.

References LLSD::asDate(), LLSD::asInteger(), LLSD::asReal(), LLSD::asURI(), LLSD::asUUID(), LLSD::clear(), ELEMENT_BINARY, ELEMENT_BOOL, ELEMENT_DATE, ELEMENT_INTEGER, ELEMENT_KEY, ELEMENT_LLSD, ELEMENT_REAL, ELEMENT_STRING, ELEMENT_UNDEF, ELEMENT_UNKNOWN, ELEMENT_URI, ELEMENT_UUID, mCurrentContent, mCurrentKey, mDepth, mGracefullStop, mInLLSDElement, mParser, mSkipping, mSkipThrough, mStack, readElement(), and S32.

const XML_Char * LLSDXMLParser::Impl::findAttribute ( const XML_Char *  name,
const XML_Char **  pairs 
) [static, private]

Definition at line 462 of file llsdserialize_xml.cpp.

References NULL.

Referenced by startElementHandler().

S32 LLSDXMLParser::Impl::parse ( std::istream &  input,
LLSD data 
)

Definition at line 366 of file llsdserialize_xml.cpp.

References BUFFER_SIZE, clear_eol(), count, get_till_eol(), llendl, llinfos, mGracefullStop, mParser, mResult, NULL, and reset().

Referenced by LLSDXMLParser::parse().

void LLSDXMLParser::Impl::parsePart ( const char *  buf,
int  len 
)

Definition at line 475 of file llsdserialize_xml.cpp.

References mParser, mPreStaged, and NULL.

Referenced by LLSDXMLParser::parsePart().

LLSDXMLParser::Impl::Element LLSDXMLParser::Impl::readElement ( const XML_Char *  name  )  [static, private]

Definition at line 695 of file llsdserialize_xml.cpp.

References ELEMENT_ARRAY, ELEMENT_BINARY, ELEMENT_BOOL, ELEMENT_DATE, ELEMENT_INTEGER, ELEMENT_KEY, ELEMENT_LLSD, ELEMENT_MAP, ELEMENT_REAL, ELEMENT_STRING, ELEMENT_UNDEF, ELEMENT_UNKNOWN, ELEMENT_URI, and ELEMENT_UUID.

Referenced by endElementHandler(), and startElementHandler().

void LLSDXMLParser::Impl::reset (  )  [private]

Definition at line 422 of file llsdserialize_xml.cpp.

References LLSD::clear(), mCurrentKey, mDepth, mGracefullStop, mInLLSDElement, mParser, mPreStaged, mResult, mSkipping, mStack, sCharacterDataHandler(), sEndElementHandler(), and sStartElementHandler().

Referenced by Impl(), and parse().

void LLSDXMLParser::Impl::sCharacterDataHandler ( void userData,
const XML_Char *  data,
int  length 
) [static, private]

Definition at line 688 of file llsdserialize_xml.cpp.

Referenced by reset().

void LLSDXMLParser::Impl::sEndElementHandler ( void userData,
const XML_Char *  name 
) [static, private]

Definition at line 682 of file llsdserialize_xml.cpp.

Referenced by reset().

void LLSDXMLParser::Impl::sStartElementHandler ( void userData,
const XML_Char *  name,
const XML_Char **  attributes 
) [static, private]

Definition at line 676 of file llsdserialize_xml.cpp.

Referenced by reset().

void LLSDXMLParser::Impl::startElementHandler ( const XML_Char *  name,
const XML_Char **  attributes 
) [private]

Definition at line 487 of file llsdserialize_xml.cpp.

References ELEMENT_ARRAY, ELEMENT_BINARY, ELEMENT_KEY, ELEMENT_LLSD, ELEMENT_MAP, LLSD::emptyArray(), LLSD::emptyMap(), findAttribute(), mCurrentContent, mCurrentKey, mDepth, mInLLSDElement, mResult, mSkipping, mStack, readElement(), and startSkipping().

void LLSDXMLParser::Impl::startSkipping (  )  [private]

Definition at line 455 of file llsdserialize_xml.cpp.

References mDepth, mSkipping, and mSkipThrough.

Referenced by startElementHandler().


Member Data Documentation

std::ostringstream LLSDXMLParser::Impl::mCurrentContent [private]

Definition at line 320 of file llsdserialize_xml.cpp.

Referenced by characterDataHandler(), endElementHandler(), and startElementHandler().

std::string LLSDXMLParser::Impl::mCurrentKey [private]

Definition at line 319 of file llsdserialize_xml.cpp.

Referenced by endElementHandler(), reset(), and startElementHandler().

int LLSDXMLParser::Impl::mDepth [private]

Definition at line 315 of file llsdserialize_xml.cpp.

Referenced by endElementHandler(), reset(), startElementHandler(), and startSkipping().

bool LLSDXMLParser::Impl::mGracefullStop [private]

Definition at line 310 of file llsdserialize_xml.cpp.

Referenced by endElementHandler(), parse(), and reset().

bool LLSDXMLParser::Impl::mInLLSDElement [private]

Definition at line 309 of file llsdserialize_xml.cpp.

Referenced by endElementHandler(), reset(), and startElementHandler().

XML_Parser LLSDXMLParser::Impl::mParser [private]

Definition at line 305 of file llsdserialize_xml.cpp.

Referenced by endElementHandler(), Impl(), parse(), parsePart(), reset(), and ~Impl().

bool LLSDXMLParser::Impl::mPreStaged [private]

Definition at line 322 of file llsdserialize_xml.cpp.

Referenced by Impl(), parsePart(), and reset().

LLSD LLSDXMLParser::Impl::mResult [private]

Definition at line 307 of file llsdserialize_xml.cpp.

Referenced by parse(), reset(), and startElementHandler().

bool LLSDXMLParser::Impl::mSkipping [private]

Definition at line 316 of file llsdserialize_xml.cpp.

Referenced by endElementHandler(), reset(), startElementHandler(), and startSkipping().

int LLSDXMLParser::Impl::mSkipThrough [private]

Definition at line 317 of file llsdserialize_xml.cpp.

Referenced by endElementHandler(), and startSkipping().

LLSDRefStack LLSDXMLParser::Impl::mStack [private]

Definition at line 313 of file llsdserialize_xml.cpp.

Referenced by endElementHandler(), reset(), and startElementHandler().


The documentation for this class was generated from the following file:
Generated on Thu Jul 1 06:11:45 2010 for Second Life Viewer by  doxygen 1.4.7