BIE |
/home/weinberg/src/BIE/include/RecordStream_Ascii.h00001 // This is really -*- C++ -*- 00002 00003 #ifndef RecordStream_Ascii_h 00004 #define RecordStream_Ascii_h 00005 00006 #include <fstream> 00007 #include "RecordInputStream.h" 00008 #include "RecordOutputStream.h" 00009 00010 #include "Serializable.h" 00011 00012 00013 namespace BIE { 00014 class AsciiLexer; 00015 class RecordInputStream_Ascii; 00016 class RecordOutputStream_Ascii; 00017 00018 //+ CLICLASS RecordInputStream_Ascii SUPER RecordInputStream 00061 class RecordInputStream_Ascii : public RecordInputStream 00062 { 00063 00064 public: 00065 //+ CLICONSTR RecordType* string 00070 RecordInputStream_Ascii (RecordType * type, string filename); 00071 00072 //+ CLICONSTR RecordType* istream* 00077 RecordInputStream_Ascii(RecordType * type, istream * asciistream); 00078 00079 //+ CLICONSTR string 00084 RecordInputStream_Ascii (string filename); 00085 00086 //+ CLICONSTR RecordType* istream* 00091 RecordInputStream_Ascii(istream * asciistream); 00092 00098 ~RecordInputStream_Ascii(); 00099 00103 bool nextRecord(); 00104 00105 //+ CLIMETHOD bool eos 00107 bool eos(); 00108 00109 //+ CLIMETHOD bool error 00111 bool error(); 00112 00113 //+ CLIMETHOD string toString 00115 string toString(); 00116 00117 private: 00119 RecordType * readMetaData(); 00120 00122 void setFieldValue (int fieldindex, int lexcode, const char * text); 00123 00124 void setArrayFieldValue (int findex, BasicType *typ, int len, AsciiLexer* lxr, int lxcde); 00125 00127 void initialize(); 00128 00130 AsciiLexer * risa_lexer; 00131 00133 bool risa_eof; 00135 bool risa_error; 00136 00137 // AUTO GENERATED BY ../persistence/autopersist.py 00138 protected: 00139 RecordInputStream_Ascii() {} 00140 private: 00141 friend class boost::serialization::access; 00142 template<class Archive> 00143 void serialize(Archive & ar, const unsigned int version) { 00144 this->pre_serialize(ar, version); 00145 try { 00146 ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(RecordInputStream); 00147 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00148 } 00149 try { 00150 ar & BOOST_SERIALIZATION_NVP(risa_eof); 00151 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00152 } 00153 try { 00154 ar & BOOST_SERIALIZATION_NVP(risa_error); 00155 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00156 } 00157 this->post_serialize(ar, version); 00158 } 00159 00160 }; 00161 00162 //+ CLICLASS RecordOutputStream_Ascii SUPER RecordOutputStream 00167 class RecordOutputStream_Ascii : public RecordOutputStream { 00168 00169 public: 00170 //+ CLICONSTR RecordOutputStream* string bool 00176 RecordOutputStream_Ascii 00177 (RecordOutputStream * stream, string filename, bool writemetadata); 00178 00179 //+ CLICONSTR int string bool 00185 RecordOutputStream_Ascii 00186 (int streamindex, string filename, bool writemetadata); 00187 00188 //+ CLICONSTR int ofstream* bool 00195 RecordOutputStream_Ascii 00196 (RecordOutputStream * stream, ostream * asciistream, bool writemetadata); 00197 00198 //+ CLICONSTR RecordOutputStream* ofstream* bool 00204 RecordOutputStream_Ascii 00205 (int streamindex, ostream * asciistream, bool writemetadata); 00206 00208 ~RecordOutputStream_Ascii(); 00209 00211 virtual void pushRecord(); 00212 00213 //+ CLIMETHOD string toString 00215 string toString(); 00216 00217 private: 00219 void initialize (RecordOutputStream * stream, bool writemetadata); 00220 00222 void writeMetaData(); 00223 00226 void escapeString(string & str); 00227 00229 void replaceAll(string &str,const char * original, const char * replacewith); 00230 00232 bool rosa_streamismine; 00233 00235 ostream * rosa_outputstream; 00236 00237 // AUTO GENERATED BY ../persistence/autopersist.py 00238 protected: 00239 RecordOutputStream_Ascii() {} 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(RecordOutputStream); 00247 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00248 } 00249 try { 00250 ar & BOOST_SERIALIZATION_NVP(rosa_streamismine); 00251 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00252 } 00253 this->post_serialize(ar, version); 00254 } 00255 00256 }; 00257 } // namespace BIE 00258 BIE_CLASS_TYPE_INFO(BIE::RecordInputStream_Ascii) 00259 BIE_CLASS_TYPE_INFO(BIE::RecordOutputStream_Ascii) 00260 BIE_CLASS_EXPORT_KEY(BIE::RecordInputStream_Ascii) 00261 BIE_CLASS_EXPORT_KEY(BIE::RecordOutputStream_Ascii) 00262 #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
|