00001
00002
00003 #ifndef TestUserState_h
00004 #define TestUserState_h
00005
00006 #include <string>
00007
00008 #include "UserState.h"
00009 #include "StateHistory_Test.h"
00010 #include "StateMetaInfo_Test.h"
00011 #include "StateTransClosure_Test.h"
00012
00013 #include "Vector.h"
00014 #include "CVector.h"
00015
00016 #include "Serializable.h"
00017
00018
00020 class TestUserState : public UserState
00021 {
00022
00023 public:
00024
00034 TestUserState(string state_name, uint32 version, bool saving);
00035
00040
00041
00042
00043 void addObject(Serializable* obj);
00045 void addObject(Vector* obj);
00047 void addObject(Matrix* obj);
00049 void addObject(Three_Vector* obj);
00051 void addObject(CVector* obj);
00053 void addObject(CMatrix* obj);
00055
00059 StateHistory & getHistory();
00060
00064 StateMetaInfo & getMetaInfo();
00065
00069 StateTransClosure_Test & getTransClosure();
00070
00071 private:
00072
00074 StateHistory_Test * tus_history;
00075
00077 StateMetaInfo_Test * tus_metainfo;
00078
00081 StateTransClosure_Test * tus_transclosure;
00082
00083
00084 protected:
00085 TestUserState() {}
00086 private:
00087 friend class boost::serialization::access;
00088 template<class Archive>
00089 void serialize(Archive & ar, const unsigned int version) {
00090 this->pre_serialize(ar, version);
00091 try {
00092 ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(UserState);
00093 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION;
00094 }
00095 try {
00096 ar & BOOST_SERIALIZATION_NVP(tus_history);
00097 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION;
00098 }
00099 try {
00100 ar & BOOST_SERIALIZATION_NVP(tus_metainfo);
00101 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION;
00102 }
00103 try {
00104 ar & BOOST_SERIALIZATION_NVP(tus_transclosure);
00105 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION;
00106 }
00107 this->post_serialize(ar, version);
00108 }
00109
00110 };
00111
00112 BIE_CLASS_TYPE_INFO(TestUserState)
00113 BIE_CLASS_EXPORT_KEY(TestUserState)
00114 #endif