00001
00002
00003
00004
00005 #ifndef ATLAS_MESSAGE_ENCODER_H
00006 #define ATLAS_MESSAGE_ENCODER_H
00007
00008 #include <Atlas/EncoderBase.h>
00009
00010 #include <map>
00011 #include <vector>
00012 #include <string>
00013
00014 namespace Atlas { namespace Message {
00015
00016 class Element;
00017
00018 typedef std::map<std::string, Element> MapType;
00019 typedef std::vector<Element> ListType;
00020
00031 class Encoder : public Atlas::EncoderBase
00032 {
00033 public:
00034 explicit Encoder(Atlas::Bridge &);
00035
00036 ~Encoder();
00037
00039 void streamMessageElement(const MapType & obj);
00041 void mapElementItem(const std::string&, const Element&);
00042 void mapElementMapItem(const std::string&, const MapType&);
00043 void mapElementListItem(const std::string&, const ListType&);
00045 void listElementItem(const Element&);
00046 void listElementMapItem(const MapType&);
00047 void listElementListItem(const ListType&);
00048 };
00049
00050 } }
00051
00052 #endif