|
Nemo
2.2.0
|
00001 00032 #ifndef FILESERVICES_H 00033 #define FILESERVICES_H 00034 00035 #include <list> 00036 #include <string> 00037 #include <map> 00038 #include "service.h" 00039 #include "param.h" 00040 00041 class Metapop; 00042 00043 class FileHandler; 00044 class FHLogWriter; 00051 class FileServices : public Service { 00052 00053 private: 00055 Metapop* _popPtr; 00057 FHLogWriter* _logWriter; 00058 00060 list< FileHandler* > _writers; 00061 00063 list< FileHandler* > _readers; 00064 00066 string _rep_filename; 00067 00069 string _basename; 00070 00072 string _root_dir; 00073 00075 list< ParamSet* > _params; 00076 00078 unsigned int _mode; 00079 00080 public: 00081 00082 typedef std::list< FileHandler* >::const_iterator file_it; 00083 00084 FileServices ( ); 00085 00086 virtual ~FileServices ( ); 00087 00088 virtual bool init ( ) {return false;} 00089 00095 bool init (list< ParamSet* >& params); 00096 00099 virtual Metapop* get_pop_ptr ( ) {return _popPtr;} 00100 00102 virtual void set_pop_ptr (Metapop* pop) {_popPtr = pop;} 00103 00105 void setMode(unsigned int m) {_mode = m;} 00106 00108 unsigned int getMode() {return _mode;} 00109 00111 void setBasename (string name); 00112 00114 void setRootDir (string name); 00115 00119 void save_simparams(list< ParamSet* >& params, std::string& file); 00120 00122 list< ParamSet* >& get_params() {return _params;}; 00123 00125 file_it getFirstWriter() {return _writers.begin();} 00126 00128 file_it getLastWriter () {return _writers.end();} 00129 00131 file_it getFirstReader() {return _readers.begin();} 00132 00134 file_it getLastReader () {return _readers.end();} 00135 00137 FileHandler* getReader (string& type); 00138 00140 string& getBaseFileName (); 00141 00143 string& getRootDir (); 00144 00146 string getReplicateCounter (); 00147 00149 string& getFirstReplicateFileName (); 00150 00152 string& getReplicateFileName (); 00153 00155 string getGenerationCounter (); 00156 00158 string getGenerationReplicateFileName (); 00159 00162 virtual void load ( SimComponent* sc ); 00163 00166 virtual void attach ( FileHandler* FH ); 00167 00170 virtual void attach_reader ( FileHandler* FH ); 00171 00173 virtual void reset ( ); 00174 00175 }; 00176 #endif //FILESERVICES_H 00177
1.7.5.1 -- Nemo is hosted by