lmsg/DataMsg.hh

00001 /* -*- mode: c++; c-basic-offset: 4; -*- */
00002 #ifndef DATAMSG_HH
00003 #define DATAMSG_HH
00004 
00005 #include "lmsg/Message.hh"
00006 
00007 namespace lmsg {
00008     class TransInput;
00009     class TransOutput;
00010 
00025   template<class T, unsigned int MsgID>
00026   class DataMsg : public Message {
00027   public:
00028 
00032     DataMsg(void) {}
00033 
00037     DataMsg(const DataMsg<T,MsgID>& x) : mData(x.mData) {}
00038 
00042     explicit DataMsg(const T& x) : mData(x) {}
00043 
00047     virtual ~DataMsg(void) {}
00048 
00053     size_type size(void) const {return 0;}
00054 
00058     void getData(TransOutput& out) const;
00059 
00064     MsgHeader::MsgType getType(void) const {return MsgID;}
00065 
00069     void setData(TransInput& in) throw(std::runtime_error);
00070 
00075     T& refData(void) {return mData;}
00076 
00081     const T& refData(void) const {return mData;}
00082 
00083   private:
00084     T mData;
00085   };
00086 
00087 }  // namespace lmsg
00088 
00089 #endif   // DATAMSG_HH

Generated on Sun Mar 8 19:20:49 2009 for dmt by  doxygen 1.5.4