00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #ifndef INTERFACES_STRINGEVENT_H
00013 #define INTERFACES_STRINGEVENT_H
00014
00015 #include <sst/core/sst_types.h>
00016 #include <sst/core/serialization.h>
00017
00018 #include <sst/core/event.h>
00019
00020 namespace SST {
00021 namespace Interfaces {
00022
00023
00024
00025
00026 class StringEvent : public SST::Event {
00027 public:
00028 StringEvent() {}
00029
00030
00031
00032
00033 StringEvent(const std::string &str) :
00034 SST::Event(), str(str)
00035 { }
00036
00037
00038 StringEvent(const StringEvent &me) : SST::Event()
00039 {
00040 str = me.str;
00041 setDeliveryLink(me.getLinkId(), NULL);
00042 }
00043
00044
00045 StringEvent(const StringEvent *me) : SST::Event()
00046 {
00047 str = me->str;
00048 setDeliveryLink(me->getLinkId(), NULL);
00049 }
00050
00051
00052 const std::string& getString(void) { return str; }
00053
00054 private:
00055 std::string str;
00056
00057 friend class boost::serialization::access;
00058 template<class Archive>
00059 void
00060 serialize(Archive & ar, const unsigned int version )
00061 {
00062 ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(Event);
00063 ar & BOOST_SERIALIZATION_NVP(str);
00064 }
00065 };
00066
00067 }
00068 }
00069
00070 #endif