00001
00002
00003 #ifndef CLIUserState_h
00004 #define CLIUserState_h
00005
00006 #include <string>
00007
00008 #include "UserState.h"
00009 #include "StateHistory_CLI.h"
00010 #include "StateMetaInfo_CLI.h"
00011 #include "StateTransClosure_CLI.h"
00012
00013
00014 #include "Serializable.h"
00015
00016
00027 class CLIUserState : public UserState
00028 {
00029
00030 public:
00031
00033 CLIUserState(string session_name, uint32 version, bool saving);
00034
00036 ~CLIUserState();
00037
00039 virtual StateHistory& getHistory();
00040
00041
00043 virtual StateMetaInfo& getMetaInfo();
00044
00045
00047 virtual StateTransClosure& getTransClosure();
00048
00049
00050 private:
00051
00053 StateHistory_CLI * cus_history;
00054
00056 StateMetaInfo * cus_metainfo;
00057
00060 StateTransClosure_CLI * cus_transclosure;
00061
00062 CLIUserState() { cus_history=0; cus_metainfo=0; cus_transclosure=0; }
00063
00064
00065 private:
00066 friend class boost::serialization::access;
00067 template<class Archive>
00068 void serialize(Archive & ar, const unsigned int version) {
00069 this->pre_serialize(ar, version);
00070 try {
00071 ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(UserState);
00072 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION;
00073 }
00074 try {
00075 ar & BOOST_SERIALIZATION_NVP(cus_history);
00076 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION;
00077 }
00078 try {
00079 ar & BOOST_SERIALIZATION_NVP(cus_metainfo);
00080 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION;
00081 }
00082 try {
00083 ar & BOOST_SERIALIZATION_NVP(cus_transclosure);
00084 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION;
00085 }
00086 this->post_serialize(ar, version);
00087 }
00088
00089 };
00090
00091 BIE_CLASS_TYPE_INFO(CLIUserState)
00092 BIE_CLASS_EXPORT_KEY(CLIUserState)
00093 #endif
00094