00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013 #ifndef _SST_SYNCEVENT_H
00014 #define _SST_SYNCEVENT_H
00015
00016 #include <sst/core/event.h>
00017
00018 namespace SST {
00019
00020 class SyncEvent : public Event
00021 {
00022 public:
00023 SyncEvent( EventHandler_t* handler )
00024 {
00025 functor = handler;
00026 }
00027
00028 SyncEvent() {}
00029 SyncEvent( const SyncEvent& e ) :
00030 Event( e )
00031 {}
00032
00033 private:
00034 EventHandler_t* functor;
00035
00036 friend class boost::serialization::access;
00037 template<class Archive>
00038 void
00039 serialize(Archive & ar, const unsigned int version )
00040 {
00041 boost::serialization::base_object<Event>(*this);
00042 }
00043
00044 template<class Archive>
00045 friend void
00046 save_construct_data(Archive & ar,
00047 const SyncEvent * t,
00048 const unsigned int file_version)
00049 {
00050 EventHandler_t* handler = t->functor;
00051 ar << BOOST_SERIALIZATION_NVP( handler );
00052 }
00053
00054 template<class Archive>
00055 friend void
00056 load_construct_data(Archive & ar,
00057 SyncEvent * t,
00058 const unsigned int file_version)
00059 {
00060 EventHandler_t* handler;
00061 ar >> BOOST_SERIALIZATION_NVP( handler );
00062 ::new(t)SyncEvent( handler );
00063 }
00064 };
00065
00066 }
00067
00068 #endif