8 #ifndef SAVECONTEXT_HPP_
9 #define SAVECONTEXT_HPP_
11 #include "../p3d/env.hpp"
12 #include "planner/planEnvironment.hpp"
79 std::vector<double>&
getTime(
int id) {
return _Time.at(
id); }
84 void addTime(std::vector<double> time) { _Time.push_back(time); }
89 std::map<Env::boolParameter, boolContainer*>
copyMap( std::map<Env::boolParameter, boolContainer*> map );
90 std::map<Env::intParameter, intContainer*>
copyMap( std::map<Env::intParameter, intContainer*> map );
91 std::map<Env::doubleParameter, doubleContainer*>
copyMap( std::map<Env::doubleParameter, doubleContainer*> map );
92 std::map<Env::stringParameter, stringContainer*>
copyMap( std::map<Env::stringParameter, stringContainer*> map );
95 std::vector< std::map<Env::boolParameter, boolContainer*> > _MapBool;
96 std::vector< std::map<Env::intParameter, intContainer*> > _MapInt;
97 std::vector< std::map<Env::doubleParameter, doubleContainer*> > _MapDouble;
98 std::vector< std::map<Env::stringParameter, stringContainer*> > _MapString;
100 std::vector< std::vector<double> > _Time;
111 template <
typename enumBool,
127 enumVector>* env) : m_ParamEnv(env)
148 std::cout <<
"Deleting " << m_MapBool.size() <<
" context" << std::endl;
155 for(
unsigned int i=0;i<m_Time.size();i++)
157 m_Time.at(i).clear();
169 return m_MapBool.size();
178 m_MapBool.push_back(
copyMap(m_ParamEnv->getBoolMap()) );
179 m_MapInt.push_back(
copyMap(m_ParamEnv->getIntMap()) );
180 m_MapDouble.push_back(
copyMap(m_ParamEnv->getDoubleMap()) );
181 m_MapString.push_back(
copyMap(m_ParamEnv->getStringMap()) );
193 std::cout <<
"Switching to " << i <<
" context" << std::endl;
196 for(
typename std::map<enumBool,boolContainer*>::iterator iter = m_MapBool[i].begin();
197 iter != m_MapBool[i].end();
200 m_ParamEnv->setBool(iter->first,iter->second->get());
203 for(
typename std::map<enumInt, intContainer*>::iterator iter = m_MapInt[i].begin();
204 iter != m_MapInt[i].end();
207 m_ParamEnv->setInt(iter->first,iter->second->get());
210 for(
typename std::map<enumDouble, doubleContainer*>::iterator iter = m_MapDouble[i].begin();
211 iter != m_MapDouble[i].end();
214 m_ParamEnv->setDouble(iter->first,iter->second->get());
218 for(
typename std::map<enumString, stringContainer*>::iterator iter = m_MapString[i].begin();
219 iter != m_MapString[i].end();
222 m_ParamEnv->setString(iter->first,iter->second->get());
234 m_MapBool.erase ( m_MapBool.begin() + i );
235 m_MapInt.erase ( m_MapInt.begin() + i );
236 m_MapDouble.erase ( m_MapDouble.begin() + i );
237 m_MapString.erase ( m_MapString.begin() + i );
246 std::cout <<
"Bool -------------------------------" << std::endl;
248 typename std::map<enumBool, boolContainer*>::iterator iter1;
249 iter1 = m_MapBool[id].begin();
251 for(; iter1 != m_MapBool[id].end(); iter1++)
253 std::cout << iter1->second->get() << std::endl;
257 std::cout <<
"Integers ---------------------------" << std::endl;
258 typename std::map<enumInt, intContainer*>::iterator iter2 = m_MapInt[id].begin();
261 for(; iter2 != m_MapInt[id].end(); iter2++)
263 std::cout << iter2->second->get() << std::endl;
266 std::cout <<
"Doubles ----------------------------" << std::endl;
267 typename std::map<enumDouble, doubleContainer*>::iterator iter3 = m_MapDouble[id].begin();
269 for(; iter3 != m_MapDouble[id].end(); iter3++)
271 std::cout << iter3->second->get() << std::endl;
275 std::cout <<
"String -----------------------------" << std::endl;
276 typename std::map<enumString, stringContainer*>::iterator iter4 = m_MapString[id].begin();
278 for(; iter4 != m_MapString[id].end(); iter4++)
280 std::cout << iter4->second->get().toStdString() << std::endl;
283 std::cout <<
"------------ end --------------" << std::endl;
293 std::cout <<
"m_Map["<<i<<
"]"<< std::endl;
299 std::vector<double>&
getTime(
int id) {
return m_Time.at(
id); }
304 void addTime(std::vector<double> time) { m_Time.push_back(time); }
309 std::map<enumBool, boolContainer*>
copyMap( std::map<enumBool, boolContainer*> myMap )
311 typename std::map<enumBool, boolContainer*>::iterator iter = myMap.begin();
313 for(; iter != myMap.end(); iter++)
316 iter->second =
new boolContainer(iter->second->get());
323 std::map<enumInt, intContainer*>
copyMap( std::map<enumInt, intContainer*> myMap )
325 typename std::map<enumInt, intContainer*>::iterator iter = myMap.begin();
327 for(; iter != myMap.end(); iter++)
330 iter->second =
new intContainer(iter->second->get());
337 std::map<enumDouble, doubleContainer*>
copyMap( std::map<enumDouble, doubleContainer*> myMap )
339 typename std::map<enumDouble, doubleContainer*>::iterator iter = myMap.begin();
341 for(; iter != myMap.end(); iter++)
344 iter->second =
new doubleContainer(iter->second->get());
350 std::map<enumString, stringContainer*>
copyMap( std::map<enumString, stringContainer*> myMap )
352 typename std::map<enumString, stringContainer*>::iterator iter = myMap.begin();
354 for(; iter != myMap.end(); iter++)
358 iter->second =
new stringContainer(iter->second->get());
365 Parameters< enumBool,
369 enumVector>* m_ParamEnv;
371 std::vector< std::map<enumBool, boolContainer*> > m_MapBool;
372 std::vector< std::map<enumInt, intContainer*> > m_MapInt;
373 std::vector< std::map<enumDouble, doubleContainer*> > m_MapDouble;
374 std::vector< std::map<enumString, stringContainer*> > m_MapString;
376 std::vector< std::vector<double> > m_Time;
381 PlanParam::boolParameter,
382 PlanParam::intParameter,
383 PlanParam::doubleParameter,
384 PlanParam::stringParameter,
385 PlanParam::vectorParameter>* storedPlannerContext;
Saves the context describe in an Env structure of one run and associates a Statistic Data structure...
Definition: SaveContext.hpp:24
unsigned int saveCurrentEnvToStack()
Saves Current Environment to Stack.
Definition: SaveContext.hpp:176
void clear()
Erases all contexts.
Definition: SaveContext.cpp:40
unsigned int getNumberStored()
returns the number of environments Stored in the data structures
Definition: SaveContext.cpp:57
void printVariables(unsigned int id)
Prints the variables of The environment.
Definition: SaveContext.cpp:81
SaveParameterEnv(Parameters< enumBool, enumInt, enumDouble, enumString, enumVector > *env)
Constructor.
Definition: SaveContext.hpp:123
std::map< Env::boolParameter, boolContainer * > copyMap(std::map< Env::boolParameter, boolContainer * > map)
Copy constructors of the 4 type of maps.
void switchCurrentEnvTo(unsigned int i)
Changes the Current Environment to a stored one.
Definition: SaveContext.cpp:123
~SaveParameterEnv()
Destructor.
Definition: SaveContext.hpp:138
unsigned int saveCurrentEnvToStack()
Saves Current Environment to Stack.
Definition: SaveContext.cpp:62
void addTime(std::vector< double > time)
Add Time Vector.
Definition: SaveContext.hpp:304
~SaveContext()
Destructor.
Definition: SaveContext.cpp:35
void printData(unsigned int i)
Print all variables of an environment.
Definition: SaveContext.cpp:73
std::vector< double > & getTime(int id)
Get Time Vector.
Definition: SaveContext.hpp:299
void clear()
Erases all contexts.
Definition: SaveContext.hpp:146
void addTime(std::vector< double > time)
Add Time Vector.
Definition: SaveContext.hpp:84
Saves the parameter environement described in an Env structure of one run and associates a Statistic ...
Definition: SaveContext.hpp:116
void deleteEnv(unsigned int i)
Delete Env.
Definition: SaveContext.cpp:159
unsigned int getNumberStored()
returns the number of environments Stored in the data structures
Definition: SaveContext.hpp:167
std::map< enumBool, boolContainer * > copyMap(std::map< enumBool, boolContainer * > myMap)
Copy constructors of the 4 type of maps.
Definition: SaveContext.hpp:309
void switchCurrentEnvTo(unsigned int i)
Changes the Current Environment to a stored one.
Definition: SaveContext.hpp:191
void printData(unsigned int i)
Print all variables of an environment.
Definition: SaveContext.hpp:289
std::vector< double > & getTime(int id)
Get Time Vector.
Definition: SaveContext.hpp:79
void printVariables(unsigned int id)
Prints the variables of The environment.
Definition: SaveContext.hpp:244
void deleteEnv(unsigned int i)
Delete Env.
Definition: SaveContext.hpp:231
SaveContext()
Constructor.
Definition: SaveContext.cpp:27