Atlas  0.7.0
Networking protocol for the Worldforge system.
Atlas::Objects::ObjectsDecoder Class Referenceabstract

#include <Decoder.h>

Inheritance diagram for Atlas::Objects::ObjectsDecoder:
Collaboration diagram for Atlas::Objects::ObjectsDecoder:

Public Member Functions

 ObjectsDecoder (const Factories &f)
 Constructor. More...
 
 ~ObjectsDecoder () override
 Default destructor. More...
 
const Factoriesfactories () const
 Factories accessor. More...
 
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
 

Protected Types

enum  State { STATE_STREAM, STATE_MAP, STATE_LIST }
 Our current decoding state. More...
 

Protected Member Functions

void messageArrived (Atlas::Message::MapType) override
 Overridden by to retrieve the message from DecoderBase. More...
 
virtual void objectArrived (Root obj)=0
 call right object*Arrived method More...
 

Protected Attributes

const Factoriesm_factories
 
std::stack< Statem_state
 The state stack. More...
 
std::stack< MapType > m_maps
 The map stack. More...
 
std::stack< ListType > m_lists
 The list stack. More...
 
std::stack< std::string > m_names
 Names for maps and lists. More...
 

Detailed Description

Objects hierarchy decoder

This decoder can be bound to a codec, will assemble incoming messages, check their type, convert them into the appropriate instance in the Objects hierarchy and call the relevant member functions, which subclasses can conveniently override to pick up the object.

See also
Atlas::Objects::Encoder
Author
Stefanus Du Toit sdt@g.nosp@m.mx.n.nosp@m.et

Definition at line 35 of file Decoder.h.

Member Enumeration Documentation

enum Atlas::Message::DecoderBase::State
protectedinherited

Our current decoding state.

Definition at line 71 of file DecoderBase.h.

Constructor & Destructor Documentation

Atlas::Objects::ObjectsDecoder::ObjectsDecoder ( const Factories f)
explicit

Constructor.

Definition at line 14 of file Decoder.cpp.

References ~ObjectsDecoder().

Atlas::Objects::ObjectsDecoder::~ObjectsDecoder ( )
overridedefault

Default destructor.

Referenced by ObjectsDecoder().

Member Function Documentation

const Factories& Atlas::Objects::ObjectsDecoder::factories ( ) const
inline

Factories accessor.

Definition at line 44 of file Decoder.h.

References messageArrived(), and objectArrived().

void Atlas::Message::DecoderBase::listEnd ( )
overridevirtualinherited
void Atlas::Message::DecoderBase::listFloatItem ( double  )
overridevirtualinherited

Adds a float to the currently streamed list.

Implements Atlas::Bridge.

Definition at line 148 of file DecoderBase.cpp.

References Atlas::Message::DecoderBase::m_lists.

void Atlas::Message::DecoderBase::listIntItem ( std::int64_t  )
overridevirtualinherited

Adds an integer to the currently streamed list.

Implements Atlas::Bridge.

Definition at line 141 of file DecoderBase.cpp.

References Atlas::Message::DecoderBase::m_lists.

void Atlas::Message::DecoderBase::listListItem ( )
overridevirtualinherited

Starts a list object in the currently streamed list.

Implements Atlas::Bridge.

Definition at line 134 of file DecoderBase.cpp.

References Atlas::Message::DecoderBase::m_lists, and Atlas::Message::DecoderBase::m_state.

void Atlas::Message::DecoderBase::listMapItem ( )
overridevirtualinherited

Starts a map object in the currently streamed list.

Implements Atlas::Bridge.

Definition at line 127 of file DecoderBase.cpp.

References Atlas::Message::DecoderBase::m_maps, and Atlas::Message::DecoderBase::m_state.

void Atlas::Message::DecoderBase::listNoneItem ( )
overridevirtualinherited

Adds an empty item to the currently streamed list.

Implements Atlas::Bridge.

Definition at line 161 of file DecoderBase.cpp.

References Atlas::Message::DecoderBase::m_lists.

void Atlas::Message::DecoderBase::listStringItem ( std::string  )
overridevirtualinherited

Adds a string to the currently streamed list.

Implements Atlas::Bridge.

Definition at line 154 of file DecoderBase.cpp.

References Atlas::Message::DecoderBase::m_lists.

void Atlas::Message::DecoderBase::mapEnd ( )
overridevirtualinherited
void Atlas::Message::DecoderBase::mapFloatItem ( std::string  name,
double   
)
overridevirtualinherited

Adds a float to the currently streamed map.

Implements Atlas::Bridge.

Definition at line 68 of file DecoderBase.cpp.

References Atlas::Message::DecoderBase::m_maps.

void Atlas::Message::DecoderBase::mapIntItem ( std::string  name,
std::int64_t   
)
overridevirtualinherited

Adds an integer to the currently streamed map.

Implements Atlas::Bridge.

Definition at line 61 of file DecoderBase.cpp.

References Atlas::Message::DecoderBase::m_maps.

void Atlas::Message::DecoderBase::mapListItem ( std::string  name)
overridevirtualinherited

Starts a list object to the currently streamed map.

Implements Atlas::Bridge.

Definition at line 53 of file DecoderBase.cpp.

References Atlas::Message::DecoderBase::m_lists, Atlas::Message::DecoderBase::m_names, and Atlas::Message::DecoderBase::m_state.

void Atlas::Message::DecoderBase::mapMapItem ( std::string  name)
overridevirtualinherited

Starts a map object to the currently streamed map.

Implements Atlas::Bridge.

Definition at line 45 of file DecoderBase.cpp.

References Atlas::Message::DecoderBase::m_maps, Atlas::Message::DecoderBase::m_names, and Atlas::Message::DecoderBase::m_state.

void Atlas::Message::DecoderBase::mapNoneItem ( std::string  name)
overridevirtualinherited

Adds a none item to the currently streamed map.

Implements Atlas::Bridge.

Definition at line 82 of file DecoderBase.cpp.

References Atlas::Message::DecoderBase::m_maps.

void Atlas::Message::DecoderBase::mapStringItem ( std::string  name,
std::string   
)
overridevirtualinherited

Adds a string to the currently streamed map.

Implements Atlas::Bridge.

Definition at line 75 of file DecoderBase.cpp.

References Atlas::Message::DecoderBase::m_maps.

void Atlas::Objects::ObjectsDecoder::messageArrived ( Atlas::Message::MapType  o)
overrideprotectedvirtual

Overridden by to retrieve the message from DecoderBase.

Implements Atlas::Message::DecoderBase.

Definition at line 20 of file Decoder.cpp.

References objectArrived().

Referenced by factories(), and Atlas::Message::DecoderBase::mapEnd().

virtual void Atlas::Objects::ObjectsDecoder::objectArrived ( Root  obj)
protectedpure virtual

call right object*Arrived method

Referenced by factories(), and messageArrived().

void Atlas::Message::DecoderBase::streamBegin ( )
overridevirtualinherited

Begin an Atlas stream.

Implements Atlas::Bridge.

Definition at line 25 of file DecoderBase.cpp.

References Atlas::Message::DecoderBase::m_state.

void Atlas::Message::DecoderBase::streamEnd ( )
overridevirtualinherited

Ends the Atlas stream.

Implements Atlas::Bridge.

Definition at line 38 of file DecoderBase.cpp.

References Atlas::Message::DecoderBase::m_state.

void Atlas::Message::DecoderBase::streamMessage ( )
overridevirtualinherited

Start a message in an Atlas stream.

Implements Atlas::Bridge.

Definition at line 31 of file DecoderBase.cpp.

References Atlas::Message::DecoderBase::m_maps, and Atlas::Message::DecoderBase::m_state.

Member Data Documentation

std::stack<std::string> Atlas::Message::DecoderBase::m_names
protectedinherited

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