00001
00002
00003
00004
00005 #ifndef ATLAS_MESSAGE_QUEUEDDECODER_H
00006 #define ATLAS_MESSAGE_QUEUEDDECODER_H
00007
00008 #include <Atlas/Message/DecoderBase.h>
00009 #include <Atlas/Message/Element.h>
00010
00011 #include <queue>
00012
00013 namespace Atlas { namespace Message {
00014
00015 class Element;
00016
00017 typedef std::map<std::string, Element> MapType;
00018
00032 class QueuedDecoder : public DecoderBase
00033 {
00034 public:
00035
00036 QueuedDecoder();
00037
00039 size_t queueSize() {
00040 return m_objectQueue.size();
00041 }
00043 const MapType popMessage() {
00044 MapType r = m_objectQueue.front();
00045 m_objectQueue.pop();
00046 return r;
00047 }
00049 const MapType frontMessage() {
00050 return m_objectQueue.front();
00051 }
00053 void clearQueue();
00054
00055 protected:
00056
00058 void messageArrived(const MapType& obj);
00059
00060 private:
00061
00062 std::queue<MapType> m_objectQueue;
00063 };
00064
00065 } }
00066
00067 #endif