Main Page   Modules   Class Hierarchy   Compound List   File List   Compound Members   Related Pages  

Atlas::Message::DecoderBase Class Reference

Base class for decoders that take Atlas::Message::Object. More...

#include <DecoderBase.h>

Inheritance diagram for Atlas::Message::DecoderBase:

Atlas::Bridge Atlas::Message::QueuedDecoder Atlas::Objects::Decoder List of all members.

Public Member Functions

virtual void StreamBegin ()
virtual void StreamMessage (const Map &)
virtual void StreamEnd ()
virtual void MapItem (const std::string &name, const Map &)
virtual void MapItem (const std::string &name, const List &)
virtual void MapItem (const std::string &name, long)
virtual void MapItem (const std::string &name, double)
virtual void MapItem (const std::string &name, const std::string &)
virtual void MapEnd ()
virtual void ListItem (const Map &)
virtual void ListItem (const List &)
virtual void ListItem (long)
virtual void ListItem (double)
virtual void ListItem (const std::string &)
virtual void ListEnd ()

Protected Types

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


Protected Member Functions

virtual void ObjectArrived (const Object &obj)=0
 Override this - called when an object was received.


Protected Attributes

std::stack< Statestate
 The state stack.

std::stack< Object::MapType > maps
 The map stack.

std::stack< Object::ListType > lists
 The list stack.

std::stack< std::string > names
 Names for maps and lists.


Detailed Description

Base class for decoders that take Atlas::Message::Object.

This class is passed to a codec as receiver bridge. It decodes a stream into Message::Object objects, and after completion calls the abstract ObjectArrived() method. This is to be overridden by base classes, which might, for instance, provide an object queue or a callback method for arrived messages.

See also:
Atlas::Bridge

Atlas::Codec

Object

Author:
Stefanus Du Toit <sdt@gmx.net>


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

Copyright 2000 the respective authors.

This document is licensed under the terms of the GNU Free Documentation License and may be freely distributed under the conditions given by this license.