BIE |
/home/weinberg/src/BIE/include/RecordInputStream.h00001 // This is -*- C++ -*- 00002 00003 #ifndef RecordInputStream_h 00004 #define RecordInputStream_h 00005 00006 #include <string> 00007 #include <vector> 00008 00009 #include "RecordStream.h" 00010 #include "RecordBuffer.h" 00011 00012 #include "Serializable.h" 00013 00014 00015 namespace BIE { 00016 00017 class RecordStreamFilter; 00018 class RecordInputStream; 00019 00020 //+ CLICLASS RecordInputStream SUPER RecordStream 00040 class RecordInputStream : public RecordStream { 00041 00042 public: 00045 ~RecordInputStream(); 00046 00047 //+ CLIMETHOD bool nextRecord 00050 virtual bool nextRecord(); 00051 00052 //+ CLIMETHOD bool eos 00054 virtual bool eos(); 00055 00056 //+ CLIMETHOD bool error 00058 virtual bool error(); 00059 00060 //+ CLIMETHOD bool isRootStream 00062 bool isRootStream(); 00063 00068 00069 inline string getStringValue(int fieldindex) 00070 { return rs_buffer->getStringValue(fieldindex); } 00071 00072 inline int getIntValue (int fieldindex) 00073 { return rs_buffer->getIntValue(fieldindex); } 00074 00075 inline double getRealValue (int fieldindex) 00076 { return rs_buffer->getRealValue(fieldindex); } 00077 00078 inline bool getBoolValue (int fieldindex) 00079 { return rs_buffer->getBoolValue(fieldindex); } 00080 00081 inline string getStringValue(string fieldname) 00082 { return rs_buffer->getStringValue(fieldname); } 00083 00084 inline int getIntValue(string fieldname) 00085 { return rs_buffer->getIntValue(fieldname); } 00086 00087 inline double getRealValue (string fieldname) 00088 { return rs_buffer->getRealValue(fieldname); } 00089 00090 inline bool getBoolValue (string fieldname) 00091 { return rs_buffer->getBoolValue(fieldname); } 00092 00093 inline vector<int> getIntArrayValue(int fieldindex) 00094 { return rs_buffer->getIntArrayValue(fieldindex); } 00095 00096 inline vector<double> getRealArrayValue(int fieldindex) 00097 { return rs_buffer->getRealArrayValue(fieldindex); } 00098 00099 inline vector<bool> getBoolArrayValue(int fieldindex) 00100 { return rs_buffer->getBoolArrayValue(fieldindex); } 00101 00103 00104 //+ CLIMETHOD RecordInputStream* deleteField string 00106 RecordInputStream* deleteField(string fieldname); 00107 00108 //+ CLIMETHOD RecordInputStream* deleteField int 00110 RecordInputStream* deleteField(int fieldindex); 00111 00112 //+ CLIMETHOD RecordInputStream* deleteRange int int 00115 RecordInputStream * deleteRange (int startfield, int endfield); 00116 00117 //+ CLIMETHOD RecordInputStream* joinWithStream int RecordInputStream* 00120 RecordInputStream * joinWithStream(int position, RecordInputStream * stream); 00121 00122 //+ CLIMETHOD RecordInputStream* selectFields RecordType* 00126 RecordInputStream * selectFields(RecordType * selection); 00127 00128 //+ CLIMETHOD RecordInputStream* selectFields vector<int>* 00132 RecordInputStream * selectFields(vector<int>* selection); 00133 00134 //+ CLIMETHOD RecordInputStream* selectFields vector<string>* 00138 RecordInputStream * selectFields(vector<string>* selection); 00139 00140 //+ CLIMETHOD RecordInputStream* renameField string string 00142 RecordInputStream * renameField(string oldname, string newname); 00143 00144 //+ CLIMETHOD RecordInputStream* renameField int string 00146 RecordInputStream * renameField(int fieldindex, string newname); 00147 00148 //+ CLIMETHOD RecordInputStream* moveField string int 00151 RecordInputStream * moveField(string fieldname, int newposition); 00152 00153 //+ CLIMETHOD RecordInputStream* moveField int int 00156 RecordInputStream * moveField(int oldposition, int newposition); 00157 00158 //+ CLIMETHOD RecordInputStream* filterWith int RecordStreamFilter* 00162 RecordInputStream * filterWith (int position, RecordStreamFilter * filter); 00163 00164 //+ CLIMETHOD string toString 00166 virtual string toString(); 00167 00168 protected: 00169 // Default constructor called by sub class constructors 00170 RecordInputStream() {} 00171 00173 void noLongerRoot(); 00174 00177 void setAsRoot(); 00178 00180 vector<RecordInputStream *> ris_inherited; 00181 00182 private: 00186 RecordInputStream * createDerivative (RecordBuffer * newbuffer); 00187 00189 bool ris_isroot; 00190 00192 RecordStreamFilter * ris_filter; 00193 00194 // AUTO GENERATED BY ../persistence/autopersist.py 00195 private: 00196 friend class boost::serialization::access; 00197 template<class Archive> 00198 void serialize(Archive & ar, const unsigned int version) { 00199 this->pre_serialize(ar, version); 00200 try { 00201 ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(RecordStream); 00202 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00203 } 00204 try { 00205 ar & BOOST_SERIALIZATION_NVP(ris_inherited); 00206 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00207 } 00208 try { 00209 ar & BOOST_SERIALIZATION_NVP(ris_isroot); 00210 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00211 } 00212 this->post_serialize(ar, version); 00213 } 00214 00215 }; 00216 } // namespace BIE 00217 00218 BIE_CLASS_TYPE_INFO(BIE::RecordInputStream) 00219 BIE_CLASS_EXPORT_KEY(BIE::RecordInputStream) 00220 #endif Send suggestions, questions, and feedback to WEINBERG at ASTRO dot UMASS dot EDU. Documentation generated at Fri Mar 26 00:35:10 2010 by
|