00001
00002
00003 #ifndef StateTransClosure_h
00004 #define StateTransClosure_h
00005
00006 #include <iostream>
00007
00008 #include "Serializable.h"
00009
00010
00018 class StateTransClosure: public Serializable
00019 {
00020
00021 public:
00023 StateTransClosure() {}
00024
00026 virtual ~StateTransClosure() {};
00027
00029 virtual void capture() = 0;
00030
00032 virtual void restore() = 0;
00033
00034
00035 private:
00036 friend class boost::serialization::access;
00037 template<class Archive>
00038 void serialize(Archive & ar, const unsigned int version) {
00039 this->pre_serialize(ar, version);
00040 try {
00041 ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(Serializable);
00042 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION;
00043 }
00044 this->post_serialize(ar, version);
00045 }
00046
00047 };
00048
00049 BIE_CLASS_EXPORT_KEY(StateTransClosure)
00050 #endif