Atlas 0.7.0
Networking protocol for the Worldforge system.
Atlas::Codecs::XML Class Reference
Inheritance diagram for Atlas::Codecs::XML:
Collaboration diagram for Atlas::Codecs::XML:

Public Member Functions

 XML (std::istream &in, std::ostream &out, Atlas::Bridge &b)
 
void poll () override
 
void streamBegin () override
 
void streamMessage () override
 
void streamEnd () override
 
void mapMapItem (std::string name) override
 
void mapListItem (std::string name) override
 
void mapIntItem (std::string name, std::int64_t) override
 
void mapFloatItem (std::string name, double) override
 
void mapStringItem (std::string name, std::string) override
 
void mapNoneItem (std::string name) override
 
void mapEnd () override
 
void listMapItem () override
 
void listListItem () override
 
void listIntItem (std::int64_t) override
 
void listFloatItem (double) override
 
void listStringItem (std::string) override
 
void listNoneItem () override
 
void listEnd () override
 

Static Public Member Functions

static std::string escape (const std::string &)
 
static std::string unescape (const std::string &)
 

Protected Types

enum  Token { TOKEN_TAG , TOKEN_START_TAG , TOKEN_END_TAG , TOKEN_DATA }
 
enum  State {
  PARSE_NOTHING , PARSE_STREAM , PARSE_MAP , PARSE_LIST ,
  PARSE_INT , PARSE_FLOAT , PARSE_STRING , PARSE_NONE
}
 

Protected Member Functions

void tokenTag (char)
 
void tokenStartTag (char)
 
void tokenEndTag (char)
 
void tokenData (char)
 
void parseStartTag ()
 
void parseEndTag ()
 

Protected Attributes

std::istream & m_istream
 
std::ostream & m_ostream
 
Bridgem_bridge
 
Token m_token
 
std::stack< State > m_state
 
std::stack< std::string > m_data
 
std::string m_tag
 
std::string m_name
 

Detailed Description

Definition at line 40 of file XML.h.

Member Enumeration Documentation

◆ State

enum Atlas::Codecs::XML::State
protected

Definition at line 110 of file XML.h.

◆ Token

enum Atlas::Codecs::XML::Token
protected

Definition at line 101 of file XML.h.

Constructor & Destructor Documentation

◆ XML()

Atlas::Codecs::XML::XML ( std::istream &  in,
std::ostream &  out,
Atlas::Bridge b 
)

Definition at line 17 of file XML.cpp.

Member Function Documentation

◆ escape()

std::string Atlas::Codecs::XML::escape ( const std::string &  original)
static

Escapes a string for HTML.

Parameters
Theoriginal string.
Returns
An escaped string.

Definition at line 401 of file XML.cpp.

◆ listEnd()

void Atlas::Codecs::XML::listEnd ( )
overridevirtual

Ends the currently streamed list.

Implements Atlas::Bridge.

Definition at line 397 of file XML.cpp.

◆ listFloatItem()

void Atlas::Codecs::XML::listFloatItem ( double  )
overridevirtual

Adds a float to the currently streamed list.

Implements Atlas::Bridge.

Definition at line 385 of file XML.cpp.

◆ listIntItem()

void Atlas::Codecs::XML::listIntItem ( std::int64_t  )
overridevirtual

Adds an integer to the currently streamed list.

Implements Atlas::Bridge.

Definition at line 381 of file XML.cpp.

◆ listListItem()

void Atlas::Codecs::XML::listListItem ( )
overridevirtual

Starts a list object in the currently streamed list.

Implements Atlas::Bridge.

Definition at line 377 of file XML.cpp.

◆ listMapItem()

void Atlas::Codecs::XML::listMapItem ( )
overridevirtual

Starts a map object in the currently streamed list.

Implements Atlas::Bridge.

Definition at line 373 of file XML.cpp.

◆ listNoneItem()

void Atlas::Codecs::XML::listNoneItem ( )
overridevirtual

Adds an empty item to the currently streamed list.

Implements Atlas::Bridge.

Definition at line 393 of file XML.cpp.

◆ listStringItem()

void Atlas::Codecs::XML::listStringItem ( std::string  )
overridevirtual

Adds a string to the currently streamed list.

Implements Atlas::Bridge.

Definition at line 389 of file XML.cpp.

◆ mapEnd()

void Atlas::Codecs::XML::mapEnd ( )
overridevirtual

Ends the currently streamed map.

Implements Atlas::Bridge.

Definition at line 369 of file XML.cpp.

◆ mapFloatItem()

void Atlas::Codecs::XML::mapFloatItem ( std::string  name,
double   
)
overridevirtual

Adds a float to the currently streamed map.

Implements Atlas::Bridge.

Definition at line 357 of file XML.cpp.

◆ mapIntItem()

void Atlas::Codecs::XML::mapIntItem ( std::string  name,
std::int64_t   
)
overridevirtual

Adds an integer to the currently streamed map.

Implements Atlas::Bridge.

Definition at line 353 of file XML.cpp.

◆ mapListItem()

void Atlas::Codecs::XML::mapListItem ( std::string  name)
overridevirtual

Starts a list object to the currently streamed map.

Implements Atlas::Bridge.

Definition at line 349 of file XML.cpp.

◆ mapMapItem()

void Atlas::Codecs::XML::mapMapItem ( std::string  name)
overridevirtual

Starts a map object to the currently streamed map.

Implements Atlas::Bridge.

Definition at line 345 of file XML.cpp.

◆ mapNoneItem()

void Atlas::Codecs::XML::mapNoneItem ( std::string  name)
overridevirtual

Adds a none item to the currently streamed map.

Implements Atlas::Bridge.

Definition at line 365 of file XML.cpp.

◆ mapStringItem()

void Atlas::Codecs::XML::mapStringItem ( std::string  name,
std::string   
)
overridevirtual

Adds a string to the currently streamed map.

Implements Atlas::Bridge.

Definition at line 361 of file XML.cpp.

◆ parseEndTag()

void Atlas::Codecs::XML::parseEndTag ( )
inlineprotected

Definition at line 192 of file XML.cpp.

◆ parseStartTag()

void Atlas::Codecs::XML::parseStartTag ( )
inlineprotected

Definition at line 105 of file XML.cpp.

◆ poll()

void Atlas::Codecs::XML::poll ( )
overridevirtual

Implements Atlas::Codec.

Definition at line 304 of file XML.cpp.

◆ streamBegin()

void Atlas::Codecs::XML::streamBegin ( )
overridevirtual

Begin an Atlas stream.

Implements Atlas::Bridge.

Definition at line 333 of file XML.cpp.

◆ streamEnd()

void Atlas::Codecs::XML::streamEnd ( )
overridevirtual

Ends the Atlas stream.

Implements Atlas::Bridge.

Definition at line 337 of file XML.cpp.

◆ streamMessage()

void Atlas::Codecs::XML::streamMessage ( )
overridevirtual

Start a message in an Atlas stream.

Implements Atlas::Bridge.

Definition at line 341 of file XML.cpp.

◆ tokenData()

void Atlas::Codecs::XML::tokenData ( char  next)
inlineprotected

Definition at line 88 of file XML.cpp.

◆ tokenEndTag()

void Atlas::Codecs::XML::tokenEndTag ( char  next)
inlineprotected

Definition at line 69 of file XML.cpp.

◆ tokenStartTag()

void Atlas::Codecs::XML::tokenStartTag ( char  next)
inlineprotected

Definition at line 44 of file XML.cpp.

◆ tokenTag()

void Atlas::Codecs::XML::tokenTag ( char  next)
inlineprotected

Definition at line 24 of file XML.cpp.

◆ unescape()

std::string Atlas::Codecs::XML::unescape ( const std::string &  original)
static

Un-escapes a previously "escaped" string for HTML.

Parameters
Theoriginal string.
Returns
An unescaped string.

Definition at line 429 of file XML.cpp.

Member Data Documentation

◆ m_bridge

Bridge& Atlas::Codecs::XML::m_bridge
protected

Definition at line 99 of file XML.h.

◆ m_data

std::stack<std::string> Atlas::Codecs::XML::m_data
protected

Definition at line 122 of file XML.h.

◆ m_istream

std::istream& Atlas::Codecs::XML::m_istream
protected

Definition at line 97 of file XML.h.

◆ m_name

std::string Atlas::Codecs::XML::m_name
protected

Definition at line 125 of file XML.h.

◆ m_ostream

std::ostream& Atlas::Codecs::XML::m_ostream
protected

Definition at line 98 of file XML.h.

◆ m_state

std::stack<State> Atlas::Codecs::XML::m_state
protected

Definition at line 121 of file XML.h.

◆ m_tag

std::string Atlas::Codecs::XML::m_tag
protected

Definition at line 124 of file XML.h.

◆ m_token

Token Atlas::Codecs::XML::m_token
protected

Definition at line 108 of file XML.h.


The documentation for this class was generated from the following files: