BIE |
/home/weinberg/src/BIE/include/BaseDataTree.h00001 // This is -*- C++ -*- 00002 00003 #ifndef BaseDataTree_h 00004 #define BaseDataTree_h 00005 00006 #include "Serializable.h" 00007 00008 00009 #include "Frontier.h" 00010 #include "Tessellation.h" 00011 #include "Tile.h" 00012 #include "Distribution.h" 00013 #include "RecordInputStream.h" 00014 00015 namespace BIE { 00016 00017 class Frontier; 00018 00019 //+ CLICLASS BaseDataTree 00025 class BaseDataTree: public Serializable { 00026 00027 public: 00028 00030 BaseDataTree(); 00031 00033 BaseDataTree(const BaseDataTree&); 00034 00036 ~BaseDataTree(); 00037 00041 virtual void SetDefaultFrontier(Frontier * frontier); 00042 00043 //+ CLIMETHOD Frontier* GetDefaultFrontier 00048 virtual inline Frontier * GetDefaultFrontier() 00049 { return fd_defaultfrontier; } 00050 00051 //+ CLIMETHOD int Total 00056 virtual inline int Total() { return fd_total; } 00057 00058 //+ CLIMETHOD int Offgrid 00063 virtual inline int Offgrid() { return fd_offgrid; } 00064 00066 virtual inline Tile* GetTile(int tileid) 00067 { return fd_tess->GetTile(tileid); } 00068 00071 virtual SampleDistribution* First (Frontier * frontier); 00072 00075 virtual SampleDistribution* Last (Frontier * frontier); 00076 00079 virtual SampleDistribution* Next (Frontier * frontier); 00080 00083 virtual SampleDistribution* CurrentItem (Frontier * frontier); 00084 00086 virtual void Reset (Frontier * frontier); 00087 00090 virtual bool IsDone (Frontier * frontier); 00091 00093 virtual Tile* CurrentTile (Frontier * frontier); 00094 00097 virtual inline SampleDistribution* First () 00098 { return First(fd_defaultfrontier); } 00099 00102 virtual inline SampleDistribution* Last () 00103 { return Last(fd_defaultfrontier); } 00104 00107 virtual inline SampleDistribution* Next () 00108 { return Next(fd_defaultfrontier); } 00109 00112 inline SampleDistribution* CurrentItem () 00113 { return CurrentItem(fd_defaultfrontier); } 00114 00117 inline void Reset () { Reset(fd_defaultfrontier); } 00118 00121 inline bool IsDone () { return IsDone(fd_defaultfrontier); } 00122 00124 inline Tile* CurrentTile () { return CurrentTile(fd_defaultfrontier); } 00125 00126 //+ CLIMETHOD int NumberItems 00128 virtual int NumberItems(); 00129 00130 //+ CLIMETHOD SampleDistribution* getDistribution int 00132 virtual SampleDistribution * getDistribution(int tileid); 00133 00134 //+ CLIMETHOD void CountData 00136 virtual void CountData(); 00137 00139 virtual Tessellation *GetTessellation() {return fd_tess;}; 00140 00141 protected: 00143 map<int, SampleDistribution*> fd_tiledistributions; 00144 00146 SampleDistribution* fd_distributionfactory; 00147 00149 Tessellation* fd_tess; 00150 00152 Frontier * fd_defaultfrontier; 00153 00155 int fd_total; 00156 00158 int fd_offgrid; 00159 00160 // AUTO GENERATED BY ../persistence/autopersist.py 00161 private: 00162 friend class boost::serialization::access; 00163 template<class Archive> 00164 void serialize(Archive & ar, const unsigned int version) { 00165 this->pre_serialize(ar, version); 00166 try { 00167 ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(Serializable); 00168 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00169 } 00170 try { 00171 ar & BOOST_SERIALIZATION_NVP(fd_tiledistributions); 00172 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00173 } 00174 try { 00175 ar & BOOST_SERIALIZATION_NVP(fd_distributionfactory); 00176 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00177 } 00178 try { 00179 ar & BOOST_SERIALIZATION_NVP(fd_tess); 00180 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00181 } 00182 try { 00183 ar & BOOST_SERIALIZATION_NVP(fd_defaultfrontier); 00184 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00185 } 00186 try { 00187 ar & BOOST_SERIALIZATION_NVP(fd_total); 00188 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00189 } 00190 try { 00191 ar & BOOST_SERIALIZATION_NVP(fd_offgrid); 00192 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00193 } 00194 this->post_serialize(ar, version); 00195 } 00196 00197 }; 00198 00199 } // namespace BIE 00200 BIE_CLASS_TYPE_INFO(BIE::BaseDataTree) 00201 BIE_CLASS_EXPORT_KEY(BIE::BaseDataTree) 00202 #endif Send suggestions, questions, and feedback to WEINBERG at ASTRO dot UMASS dot EDU. Documentation generated at Fri Mar 26 00:35:09 2010 by
|