Nemo  2.2.0
fileservices.h
Go to the documentation of this file.
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 

Generated for Nemo v2.2.0 by  doxygen 1.7.5.1 -- Nemo is hosted by  SourceForge.net Logo