Nemo  2.4.2
Simulate forward-in-time genetic evolution in a spatially explicit, individual-based stochastic simulator
simcomponent.h
Go to the documentation of this file.
1 
28 #ifndef SIMCOMPONENT_H
29 #define SIMCOMPONENT_H
30 
31 #include <string>
32 #include "fileservices.h"
33 #include "statservices.h"
34 #include "updaterservices.h"
35 #include "param.h"
36 #include "binarystoragebuffer.h"
37 
43 class SimComponent {
44 protected:
47 
48 public:
49 
50  SimComponent ( ) : _paramSet(0) {}//{ cout << "calling SimComponent()" << endl;}
51  //**Dstor. Deletes the parameter container. */
52  virtual ~SimComponent ( ) {if(_paramSet != NULL) delete _paramSet;}
53 
56 
58  virtual void loadFileServices ( FileServices* loader ) = 0;
59 
62  virtual void loadStatServices ( StatServices* loader ) = 0;
63 
66  virtual void loadUpdaters ( UpdaterServices* loader ) {
67  list<ParamUpdaterBase*> updaters = _paramSet->getUpdaters();
68  //remove duplicates:
69  updaters.unique();
70  for (list<ParamUpdaterBase*>::iterator u = updaters.begin(); u != updaters.end(); u++) {
71  loader->attach( (*u) );
72  }
73  }
75 
78 
80  virtual bool setParameters () = 0;
81 
84  virtual void set_paramset(ParamSet * paramset)
85  { _paramSet = paramset; }
86 
91  virtual void set_paramset (std::string name, bool required, SimComponent* owner ) {
92  if(_paramSet != NULL) delete _paramSet;
93  _paramSet = new ParamSet();
94  _paramSet->setName(name);
95  _paramSet->setIsRequired(required);
96  _paramSet->setOwner(owner);
97  }
98 
101  virtual void set_paramsetFromCopy (const ParamSet &PSet) {
102  if(_paramSet != NULL) delete _paramSet;
103  _paramSet = new ParamSet(PSet);
104  }
106  virtual ParamSet* get_paramset () {return _paramSet;}
107 
110  virtual void add_parameter (Param* param) {_paramSet->add_param(param);}
111 
119  virtual void add_parameter (std::string Name, param_t Type, bool isRequired, bool isBounded,
120  double low_bnd, double up_bnd)
121  {_paramSet->add_param(Name, Type, isRequired, isBounded, low_bnd, up_bnd, 0);}
122 
131  virtual void add_parameter (std::string Name, param_t Type, bool isRequired, bool isBounded,
132  double low_bnd, double up_bnd, ParamUpdaterBase* updater)
133  {_paramSet->add_param(Name, Type, isRequired, isBounded, low_bnd, up_bnd, updater);}
134 
137  virtual Param* get_parameter (std::string name) {return _paramSet->get_param(name);}
138 
141  virtual double get_parameter_value (std::string name) {return _paramSet->getValue(name);}
142 
144  virtual string get_name () {return _paramSet->getName();}
145 
148  virtual bool has_parameter (std::string name) {return _paramSet->has_param(name);}
149 
150 
151  virtual bool resetParameterFromSource (std::string param, SimComponent* cmpt) = 0;
153 
154 };
155 
161 
162 public:
164  virtual void store_data ( BinaryStorageBuffer* saver ) = 0;
165 
167  virtual bool retrieve_data ( BinaryStorageBuffer* reader ) = 0;
168 
169  virtual ~StorableComponent ( ) { }
170 
171 };
172 
173 #endif //SIMCOMPONENT_H
174 
A class to store any kind of data in a char buffer before unloading it in a binary data file.
Definition: binarystoragebuffer.h:42
A class to manage the files associated with each components of the simulation.
Definition: fileservices.h:50
Parameters container, implemented in each SimComponent.
Definition: param.h:214
double getValue(string name)
Accessor the parameters value.
Definition: param.h:310
string getName()
Name accessor.
Definition: param.h:298
bool has_param(string name)
Look for a param "name" in its parameters list.
Definition: param.cc:705
void add_param(Param *param)
Adds the param argument to the list.
Definition: param.h:251
void setName(string value)
Sets the container's name.
Definition: param.h:290
void setOwner(SimComponent *owner)
Sets the pointer to the SimComponents that owns this set.
Definition: param.h:294
Param * get_param(string name)
Look for a param "name" in its parameters list.
Definition: param.cc:691
void setIsRequired(bool value)
Sets the _isRequired flag meaning this container is mandatory and must be set in order to run a simul...
Definition: param.h:292
list< ParamUpdaterBase * > getUpdaters()
Collects the parameter updaters from the set of parameters.
Definition: param.cc:646
Base class of the ParamUpdater class used to handle the temporal parameter argument values.
Definition: param.h:323
This structure stores one parameter, its definition and its string argument.
Definition: param.h:52
Interface to all basic components of a simulation (traits, life cycle events, pop,...
Definition: simcomponent.h:43
virtual void set_paramsetFromCopy(const ParamSet &PSet)
Reset the set of parameters from a another set.
Definition: simcomponent.h:101
virtual void loadStatServices(StatServices *loader)=0
Loads the component's StatHandler onto the StatServices.
virtual void loadUpdaters(UpdaterServices *loader)
Loads the parameters and component updater onto the updater manager.
Definition: simcomponent.h:66
virtual bool resetParameterFromSource(std::string param, SimComponent *cmpt)=0
virtual ~SimComponent()
Definition: simcomponent.h:52
virtual double get_parameter_value(std::string name)
Param value getter.
Definition: simcomponent.h:141
SimComponent()
Definition: simcomponent.h:50
virtual void add_parameter(std::string Name, param_t Type, bool isRequired, bool isBounded, double low_bnd, double up_bnd, ParamUpdaterBase *updater)
Interface to add a parameter and its updater to the set.
Definition: simcomponent.h:131
virtual void set_paramset(ParamSet *paramset)
Sets the ParamSet member.
Definition: simcomponent.h:84
virtual Param * get_parameter(std::string name)
Param getter.
Definition: simcomponent.h:137
virtual void add_parameter(std::string Name, param_t Type, bool isRequired, bool isBounded, double low_bnd, double up_bnd)
Interface to add a parameter to the set.
Definition: simcomponent.h:119
virtual void add_parameter(Param *param)
Interface to add a parameter to the set.
Definition: simcomponent.h:110
virtual void loadFileServices(FileServices *loader)=0
Loads the component's FileHandler onto the FileServices.
virtual bool has_parameter(std::string name)
Param getter.
Definition: simcomponent.h:148
virtual string get_name()
Returnd the name of the ParamSet, i.e.
Definition: simcomponent.h:144
virtual ParamSet * get_paramset()
ParamSet accessor.
Definition: simcomponent.h:106
ParamSet * _paramSet
The parameters container.
Definition: simcomponent.h:46
virtual bool setParameters()=0
Default interface needed to initialize the component's variables from its input parameters value.
virtual void set_paramset(std::string name, bool required, SimComponent *owner)
Sets a new ParamSet and name it.
Definition: simcomponent.h:91
The Service class used to manage the StatHandler objects.
Definition: statservices.h:48
Provides an interface to binary data saving and uploading.
Definition: simcomponent.h:160
virtual bool retrieve_data(BinaryStorageBuffer *reader)=0
Interface to retrieve the same data from the binary buffer.
virtual ~StorableComponent()
Definition: simcomponent.h:169
virtual void store_data(BinaryStorageBuffer *saver)=0
Interface to store the component data (e.g. gene values) into a binary buffer.
Class to update the simulation components' state during a simulation.
Definition: updaterservices.h:62
virtual void attach(Handler *H)
Attach the updater to the stack.
Definition: updaterservices.cc:87
Nemo2.
param_t
Param's types.
Definition: types.h:75

Generated for Nemo v2.4.2 by  doxygen 1.9.1

Catalogued on GSR