BIE |
/home/weinberg/src/BIE/include/RecordOutputStream.h00001 // This is really -*- C++ -*- 00002 00003 #ifndef RecordOutputStream_h 00004 #define RecordOutputStream_h 00005 00006 #include "RecordStream.h" 00007 #include <vector> 00008 00009 namespace BIE { 00010 00011 class RecordStreamFilter; 00012 00013 //+ CLICLASS RecordOutputStream SUPER RecordStream 00040 class RecordOutputStream : public RecordStream { 00041 00042 public: 00046 virtual ~RecordOutputStream() { removeOldStream(this); } 00047 00048 //+ CLICONSTR RecordType* 00050 RecordOutputStream(RecordType * streamtype); 00051 00052 //+ CLIMETHOD void pushRecord 00054 virtual void pushRecord(); 00055 00056 //+ CLIMETHOD void close 00058 virtual void close(); 00059 00060 //+ CLIMETHOD RecordOutputStream* deleteField string 00064 RecordOutputStream* deleteField(string fieldname); 00065 00066 //+ CLIMETHOD RecordOutputStream* deleteField int 00070 RecordOutputStream* deleteField(int fieldindex); 00071 00072 //+ CLIMETHOD RecordOutputStream* deleteRange int int 00074 RecordOutputStream * deleteRange (int startfield, int endfield); 00075 00076 //+ CLIMETHOD RecordOutputStream* selectFields RecordType* 00082 RecordOutputStream * selectFields(RecordType * selection); 00083 00084 //+ CLIMETHOD RecordOutputStream* selectFields vector<int>* 00090 RecordOutputStream * selectFields(vector<int>* selection); 00091 00092 //+ CLIMETHOD RecordOutputStream* selectFields vector<string>* 00097 RecordOutputStream * selectFields(vector<string>* selection); 00098 00099 //+ CLIMETHOD RecordOutputStream* renameField string string 00101 RecordOutputStream * renameField(string oldname, string newname); 00102 00103 //+ CLIMETHOD RecordOutputStream* renameField int string 00105 RecordOutputStream * renameField(int fieldindex, string newname) ; 00106 00107 //+ CLIMETHOD RecordOutputStream* moveField string int 00110 RecordOutputStream * moveField(string fieldname, int newposition); 00111 00112 //+ CLIMETHOD RecordOutputStream* moveField string int 00117 RecordOutputStream * moveField(int oldposition, int newposition); 00118 00119 //+ CLIMETHOD RecordOutputStream* filterWith int RecordStreamFilter* 00124 RecordOutputStream * filterWith (int position, RecordStreamFilter * filter); 00125 00126 //+ CLIMETHOD RecordOutputStream* filterWith RecordStreamFilter* 00131 RecordOutputStream * filterWith (RecordStreamFilter * filter); 00132 00133 //+ CLIMETHOD void setStringValue int string 00137 void setStringValue(int fieldindex, string value); 00138 //+ CLIMETHOD void setIntValue int int 00142 void setIntValue (int fieldindex, int value); 00143 //+ CLIMETHOD void setRealValue int double 00147 void setRealValue (int fieldindex, double value); 00148 00149 //+ CLIMETHOD void setBoolValue int bool 00153 void setBoolValue (int fieldindex, bool value); 00154 00155 //+ CLIMETHOD void setStringValue string string 00159 void setStringValue(string fieldname, string value); 00160 00161 //+ CLIMETHOD void setIntValue string int 00165 void setIntValue (string fieldname, int value); 00166 00167 //+ CLIMETHOD void setRealValue string double 00171 void setRealValue (string fieldname, double value); 00172 //+ CLIMETHOD void setBoolValue string bool 00176 void setBoolValue (string fieldname, bool value); 00177 00179 00180 00181 void setIntArrayValue(int fieldindex, vector<int> value); 00183 void setRealArrayValue(int fieldindex, vector<double> value); 00185 void setBoolArrayValue(int fieldindex, vector<bool> value); 00187 00188 //+ CLIMETHOD string toString 00190 virtual string toString(); 00191 00192 //+ CLIMETHOD bool isRootStream 00194 bool isRootStream () { return ros_isroot; } 00195 00196 //+ CLIMETHOD bool inheritable 00198 bool inheritable () { return ros_inheritable; } 00199 00202 void registerForUpdates(RecordOutputStream * stream); 00203 00205 static RecordOutputStream* getStream(int streamindex); 00206 00209 static vector<RecordOutputStream*> getInheritableStreams(); 00210 00211 protected: 00215 RecordOutputStream() {} 00216 00218 bool ros_isroot; 00219 00221 00222 bool ros_inheritable; 00223 00225 bool ros_closed; 00226 00230 static void addNewStream(RecordOutputStream * newstream); 00231 00236 static void removeOldStream(RecordOutputStream * oldstream); 00237 00241 RecordOutputStream * ros_myinputstream; 00242 00243 private: 00246 RecordOutputStream * createDerivative (RecordBuffer * newbuffer); 00247 00249 vector<RecordOutputStream *> ros_inheriting; 00250 00252 RecordStreamFilter * ros_filter; 00253 00255 static vector<RecordOutputStream*> ros_inheritablestreams; 00256 }; 00257 } 00258 00259 #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
|