BIE |
/home/weinberg/src/BIE/include/TypedBuffer.h00001 // This is really -*- C++ -*- 00002 00003 #ifndef TypedBuffer_h 00004 #define TypedBuffer_h 00005 00006 #include <string> 00007 #include <vector> 00008 #include <sstream> 00009 00010 #include "Serializable.h" 00011 00012 00013 #include "BasicType.h" 00014 00015 using namespace std; 00016 00017 namespace BIE { 00018 00019 //+ CLICLASS TypedBuffer 00029 class TypedBuffer: public Serializable 00030 { 00031 00032 public: 00034 TypedBuffer(){} 00035 00036 //+ CLIMETHOD TypedBuffer* createNew BasicType* 00041 static TypedBuffer * createNew(BasicType *); 00042 00044 virtual ~TypedBuffer() {}; 00045 00048 virtual void setStringValue(string); 00049 00052 virtual void setIntValue(int); 00053 00056 virtual void setRealValue(double); 00057 00060 virtual void setBoolValue(bool); 00061 00066 00067 virtual void setIntArrayValue(vector<int>); 00069 virtual void setIntArrayValue(int iv); 00071 virtual void setIntArrayValue(int offset, int iv); 00073 00075 00076 00077 virtual void setRealArrayValue(vector<double>); 00079 virtual void setRealArrayValue(double); 00081 virtual void setRealArrayValue(int offset, double dv); 00083 00085 00086 00087 virtual void setBoolArrayValue(vector<bool>); 00089 virtual void setBoolArrayValue(bool bv); 00091 virtual void setBoolArrayValue(int offset, bool bv); 00093 00094 00102 00103 00104 virtual string getStringValue(); 00105 00108 virtual int getIntValue(); 00109 00112 virtual double getRealValue(); 00113 00116 virtual bool getBoolValue(); 00117 00119 virtual vector<int> getIntArrayValue(); 00120 00122 virtual int getIntArrayValue(int offset); 00123 00125 virtual vector<double> getRealArrayValue(); 00126 00128 virtual double getRealArrayValue(int offset); 00129 00131 virtual vector<bool> getBoolArrayValue(); 00132 00134 virtual bool getBoolArrayValue(int offset); 00135 00137 BasicType * getType(); 00138 00140 bool hasValue(); 00141 00144 void reset() { tb_hasvalue = false;} 00145 00147 virtual string toString() = 0; 00148 00149 protected: 00150 00152 BasicType * tb_type; 00153 00155 bool tb_hasvalue; 00156 00157 // AUTO GENERATED BY ../persistence/autopersist.py 00158 private: 00159 friend class boost::serialization::access; 00160 template<class Archive> 00161 void serialize(Archive & ar, const unsigned int version) { 00162 this->pre_serialize(ar, version); 00163 try { 00164 ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(Serializable); 00165 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00166 } 00167 try { 00168 ar & BOOST_SERIALIZATION_NVP(tb_type); 00169 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00170 } 00171 try { 00172 ar & BOOST_SERIALIZATION_NVP(tb_hasvalue); 00173 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00174 } 00175 this->post_serialize(ar, version); 00176 } 00177 00178 }; 00179 00187 class TypedBuffer_String : public TypedBuffer 00188 { 00189 00190 public: 00193 TypedBuffer_String(); 00194 00195 void setStringValue (string); 00196 string getStringValue (); 00197 string toString(); 00198 00199 private: 00201 string tbstring_value; 00202 00203 // AUTO GENERATED BY ../persistence/autopersist.py 00204 private: 00205 friend class boost::serialization::access; 00206 template<class Archive> 00207 void serialize(Archive & ar, const unsigned int version) { 00208 this->pre_serialize(ar, version); 00209 try { 00210 ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(TypedBuffer); 00211 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00212 } 00213 try { 00214 ar & BOOST_SERIALIZATION_NVP(tbstring_value); 00215 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00216 } 00217 this->post_serialize(ar, version); 00218 } 00219 00220 }; 00221 00225 class TypedBuffer_Int : public TypedBuffer { 00226 00227 public: 00230 TypedBuffer_Int(); 00231 void setIntValue (int); 00232 int getIntValue (); 00233 string toString(); 00234 00235 private: 00237 int tbint_value; 00238 00239 // AUTO GENERATED BY ../persistence/autopersist.py 00240 private: 00241 friend class boost::serialization::access; 00242 template<class Archive> 00243 void serialize(Archive & ar, const unsigned int version) { 00244 this->pre_serialize(ar, version); 00245 try { 00246 ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(TypedBuffer); 00247 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00248 } 00249 try { 00250 ar & BOOST_SERIALIZATION_NVP(tbint_value); 00251 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00252 } 00253 this->post_serialize(ar, version); 00254 } 00255 00256 }; 00257 00261 class TypedBuffer_Real : public TypedBuffer { 00262 00263 public: 00266 TypedBuffer_Real(); 00267 00268 void setRealValue (double); 00269 double getRealValue (); 00270 string toString(); 00271 00272 private: 00274 double tbreal_value; 00275 00276 // AUTO GENERATED BY ../persistence/autopersist.py 00277 private: 00278 friend class boost::serialization::access; 00279 template<class Archive> 00280 void serialize(Archive & ar, const unsigned int version) { 00281 this->pre_serialize(ar, version); 00282 try { 00283 ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(TypedBuffer); 00284 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00285 } 00286 try { 00287 ar & BOOST_SERIALIZATION_NVP(tbreal_value); 00288 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00289 } 00290 this->post_serialize(ar, version); 00291 } 00292 00293 }; 00294 00298 class TypedBuffer_Bool : public TypedBuffer { 00299 00300 public: 00303 TypedBuffer_Bool(); 00304 void setBoolValue (bool); 00305 bool getBoolValue (); 00306 string toString(); 00307 00308 private: 00310 bool tbbool_value; 00311 00312 // AUTO GENERATED BY ../persistence/autopersist.py 00313 private: 00314 friend class boost::serialization::access; 00315 template<class Archive> 00316 void serialize(Archive & ar, const unsigned int version) { 00317 this->pre_serialize(ar, version); 00318 try { 00319 ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(TypedBuffer); 00320 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00321 } 00322 try { 00323 ar & BOOST_SERIALIZATION_NVP(tbbool_value); 00324 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00325 } 00326 this->post_serialize(ar, version); 00327 } 00328 00329 }; 00330 00332 class TypedBuffer_IntArray : public TypedBuffer_Int { 00333 00334 public: 00336 TypedBuffer_IntArray(BasicType *); 00337 00339 TypedBuffer_IntArray(BasicType *, vector<int>); 00340 00342 vector<int> getIntArrayValue(); 00343 00345 int getIntArrayValue(int offset); 00346 00348 void setIntArrayValue(vector<int>); 00349 00351 void setIntArrayValue(int iv); 00352 00354 void setIntArrayValue(int offset, int iv); 00355 00357 string toString(); 00358 00359 private: 00360 vector<int> tbintarray_value; 00361 00362 // AUTO GENERATED BY ../persistence/autopersist.py 00363 protected: 00364 TypedBuffer_IntArray() {} 00365 private: 00366 friend class boost::serialization::access; 00367 template<class Archive> 00368 void serialize(Archive & ar, const unsigned int version) { 00369 this->pre_serialize(ar, version); 00370 try { 00371 ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(TypedBuffer_Int); 00372 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00373 } 00374 try { 00375 ar & BOOST_SERIALIZATION_NVP(tbintarray_value); 00376 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00377 } 00378 this->post_serialize(ar, version); 00379 } 00380 00381 }; 00382 00384 class TypedBuffer_RealArray : public TypedBuffer_Real { 00385 00386 public: 00388 TypedBuffer_RealArray(BasicType *); 00389 00391 TypedBuffer_RealArray(BasicType *, vector<double>); 00392 00394 vector<double> getRealArrayValue(); 00395 00397 double getRealArrayValue(int offset); 00398 00400 void setRealArrayValue(vector<double> vd); 00401 00403 void setRealArrayValue(double dv); 00404 00406 void setRealArrayValue(int offset, double dv); 00407 00409 string toString(); 00410 00411 00412 private: 00413 vector<double> tbrealarray_value; 00414 00415 // AUTO GENERATED BY ../persistence/autopersist.py 00416 protected: 00417 TypedBuffer_RealArray() {} 00418 private: 00419 friend class boost::serialization::access; 00420 template<class Archive> 00421 void serialize(Archive & ar, const unsigned int version) { 00422 this->pre_serialize(ar, version); 00423 try { 00424 ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(TypedBuffer_Real); 00425 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00426 } 00427 try { 00428 ar & BOOST_SERIALIZATION_NVP(tbrealarray_value); 00429 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00430 } 00431 this->post_serialize(ar, version); 00432 } 00433 00434 }; 00435 00437 class TypedBuffer_BoolArray : public TypedBuffer_Bool 00438 { 00439 00440 public: 00442 TypedBuffer_BoolArray(BasicType *); 00443 00445 TypedBuffer_BoolArray(BasicType *, vector<bool>); 00446 00448 vector<bool> getBoolArrayValue(); 00449 00451 bool getBoolArrayValue(int offset); 00452 00454 void setBoolArrayValue(vector<bool>); 00455 00457 void setBoolArrayValue(bool bv); 00458 00460 void setBoolArrayValue(int offset, bool bv); 00461 00463 string toString(); 00464 00465 private: 00466 vector<bool> tbboolarray_value; 00467 00468 // AUTO GENERATED BY ../persistence/autopersist.py 00469 protected: 00470 TypedBuffer_BoolArray() {} 00471 private: 00472 friend class boost::serialization::access; 00473 template<class Archive> 00474 void serialize(Archive & ar, const unsigned int version) { 00475 this->pre_serialize(ar, version); 00476 try { 00477 ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(TypedBuffer_Bool); 00478 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00479 } 00480 try { 00481 ar & BOOST_SERIALIZATION_NVP(tbboolarray_value); 00482 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00483 } 00484 this->post_serialize(ar, version); 00485 } 00486 00487 }; 00488 00489 00490 } // namespace BIE 00491 00492 #if BOOST_VERSION <= 103500 00493 BOOST_IS_ABSTRACT(BIE::TypedBuffer) 00494 #else 00495 BOOST_SERIALIZATION_ASSUME_ABSTRACT(BIE::TypedBuffer) 00496 #endif 00497 00498 BIE_CLASS_TYPE_INFO(BIE::TypedBuffer_String) 00499 BIE_CLASS_TYPE_INFO(BIE::TypedBuffer_Int) 00500 BIE_CLASS_TYPE_INFO(BIE::TypedBuffer_Real) 00501 BIE_CLASS_TYPE_INFO(BIE::TypedBuffer_Bool) 00502 BIE_CLASS_TYPE_INFO(BIE::TypedBuffer_IntArray) 00503 BIE_CLASS_TYPE_INFO(BIE::TypedBuffer_RealArray) 00504 BIE_CLASS_TYPE_INFO(BIE::TypedBuffer_BoolArray) 00505 BIE_CLASS_EXPORT_KEY(BIE::TypedBuffer) 00506 BIE_CLASS_EXPORT_KEY(BIE::TypedBuffer_String) 00507 BIE_CLASS_EXPORT_KEY(BIE::TypedBuffer_Int) 00508 BIE_CLASS_EXPORT_KEY(BIE::TypedBuffer_Real) 00509 BIE_CLASS_EXPORT_KEY(BIE::TypedBuffer_Bool) 00510 BIE_CLASS_EXPORT_KEY(BIE::TypedBuffer_IntArray) 00511 BIE_CLASS_EXPORT_KEY(BIE::TypedBuffer_RealArray) 00512 BIE_CLASS_EXPORT_KEY(BIE::TypedBuffer_BoolArray) 00513 #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
|