BIE |
/home/weinberg/src/BIE/persistence/StateMetaInfo.h00001 // -*- C++ -*- 00002 00003 #ifndef StateMetaInfo_h 00004 #define StateMetaInfo_h 00005 00006 #include <unistd.h> 00007 #include <time.h> 00008 #include <string> 00009 00010 #include "Serializable.h" 00011 00012 00013 using namespace std; 00014 00018 class StateMetaInfo: public Serializable 00019 { 00020 00021 public: 00023 StateMetaInfo () {} 00024 00026 virtual ~StateMetaInfo() {}; 00027 00030 virtual void capture() = 0; 00031 00033 virtual void restore() = 0; 00034 00036 string getHostName() { return meta_hostname; } 00037 00039 string getUserName() { return meta_username; } 00040 00042 string getComment() { return meta_comment; } 00043 00045 void setComment(const string& comment) { meta_comment = comment; } 00046 00048 void clearComment() { meta_comment = ""; } 00049 00051 struct tm * getCreationTime() { return &meta_tm; } 00052 00053 protected: 00055 struct tm meta_tm; 00056 00058 string meta_username; 00059 00061 string meta_hostname; 00062 00064 string meta_comment; 00065 00066 template<class Archive> 00067 void post_serialize(Archive &ar, const unsigned int file_version) 00068 { 00069 // 00070 // Serialize the tm structure 00071 // 00072 ar & BOOST_SERIALIZATION_NVP(meta_tm.tm_sec); // seconds 00073 ar & BOOST_SERIALIZATION_NVP(meta_tm.tm_min); // minutes 00074 ar & BOOST_SERIALIZATION_NVP(meta_tm.tm_hour); // hours 00075 ar & BOOST_SERIALIZATION_NVP(meta_tm.tm_mday); // day of the month 00076 ar & BOOST_SERIALIZATION_NVP(meta_tm.tm_mon); // month 00077 ar & BOOST_SERIALIZATION_NVP(meta_tm.tm_year); // year 00078 ar & BOOST_SERIALIZATION_NVP(meta_tm.tm_wday); // day of the week 00079 ar & BOOST_SERIALIZATION_NVP(meta_tm.tm_yday); // day of the year 00080 ar & BOOST_SERIALIZATION_NVP(meta_tm.tm_isdst); // daylight saving time 00081 } 00082 00083 // AUTO GENERATED BY ../persistence/autopersist.py 00084 private: 00085 friend class boost::serialization::access; 00086 template<class Archive> 00087 void serialize(Archive & ar, const unsigned int version) { 00088 this->pre_serialize(ar, version); 00089 try { 00090 ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(Serializable); 00091 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00092 } 00093 try { 00094 ar & BOOST_SERIALIZATION_NVP(meta_username); 00095 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00096 } 00097 try { 00098 ar & BOOST_SERIALIZATION_NVP(meta_hostname); 00099 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00100 } 00101 try { 00102 ar & BOOST_SERIALIZATION_NVP(meta_comment); 00103 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00104 } 00105 this->post_serialize(ar, version); 00106 } 00107 00108 }; 00109 00110 00111 BIE_CLASS_EXPORT_KEY(StateMetaInfo) 00112 #endif Send suggestions, questions, and feedback to WEINBERG at ASTRO dot UMASS dot EDU. Documentation generated at Fri Mar 26 00:35:11 2010 by
|