00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #ifndef LM_MESSAGE_H
00029 #define LM_MESSAGE_H
00030
00031 #include <iostream>
00032 #include <vpr/IO/BufferObjectWriter.h>
00033
00034 #include "../Defs.h"
00035
00036 namespace lm
00037 {
00038 namespace message
00039 {
00040 class Message : public vpr::SerializableObject
00041 {
00042 public:
00043 Message(std::string* message)
00044 {
00045 mMessage = message;
00046 }
00047 virtual ~Message(){;}
00048
00049 vpr::ReturnStatus readObject(vpr::ObjectReader* reader)
00050 {
00051 mMessage = &std::string(reader->readString());
00052 return vpr::ReturnStatus::Succeed;
00053 }
00054
00055 vpr::ReturnStatus writeObject(vpr::ObjectWriter* writer)
00056 {
00057 writer->writeString(*mMessage);
00058 return vpr::ReturnStatus::Succeed;
00059 }
00060
00061 private:
00062 std::string* mMessage;
00063 };
00064
00065
00066 inline plx::MulticastMessagePtr
00067 constructMulticastMessage(UUID* agentName, MESSAGE_TYPE t, Message message)
00068 {
00069 vpr::BufferObjectWriter writer;
00070 message.writeObject(&writer);
00071
00072 plx::MulticastMessagePtr msg(new plx::MulticastMessage);
00073 msg->setDomain(vpr::GUID(agentName->str()));
00074 msg->setDomainGroup(vpr::GUID(t.str()));
00075 msg->wrapData(*(writer.getData()));
00076
00077 return msg;
00078 }
00079 }
00080 }
00081
00082 #endif