Revision: 8441
http://playerstage.svn.sourceforge.net/playerstage/?rev=8441&view=rev
Author: natepak
Date: 2009-11-24 01:14:03 +0000 (Tue, 24 Nov 2009)
Log Message:
-----------
Added parameters for save buffer
Modified Paths:
--------------
code/gazebo/trunk/server/Timer.hh
code/gazebo/trunk/server/World.cc
code/gazebo/trunk/server/World.hh
Modified: code/gazebo/trunk/server/Timer.hh
===================================================================
--- code/gazebo/trunk/server/Timer.hh 2009-11-23 23:59:22 UTC (rev 8440)
+++ code/gazebo/trunk/server/Timer.hh 2009-11-24 01:14:03 UTC (rev 8441)
@@ -38,7 +38,7 @@
/// \brief Constructor
/// \param t The type of timer (based on either the simulation or real
/// time)
- public: Timer(Type t);
+ public: Timer(Type t=Timer::REAL_TIMER);
/// \brief Destructor
public: virtual ~Timer();
Modified: code/gazebo/trunk/server/World.cc
===================================================================
--- code/gazebo/trunk/server/World.cc 2009-11-23 23:59:22 UTC (rev 8440)
+++ code/gazebo/trunk/server/World.cc 2009-11-24 01:14:03 UTC (rev 8441)
@@ -68,16 +68,12 @@
PhysicsFactory::RegisterAll();
this->factory = NULL;
-#ifdef USE_THREADPOOL
Param::Begin(&this->parameters);
this->threadsP = new ParamT<int>("threads",2,0);
+ this->saveStateTimeoutP = new ParamT<Time>("saveStateResolution",0.1,0);
+ this->saveStateBufferSizeP = new ParamT<unsigned
int>("saveStateBufferSize",1000,0);
Param::End();
-#endif
- this->worldStates.resize(10000);
- this->worldStatesInsertIter = this->worldStates.begin();
- this->worldStatesEndIter = this->worldStates.begin();
- this->worldStatesCurrentIter = this->worldStatesInsertIter;
}
////////////////////////////////////////////////////////////////////////////////
@@ -134,8 +130,12 @@
this->factory = NULL;
}
+ delete this->saveStateTimeoutP;
+ delete this->saveStateBufferSizeP;
+
+ delete this->threadsP;
+
#ifdef USE_THREADPOOL
- delete this->threadsP;
delete this->threadPool;
#endif
@@ -206,9 +206,18 @@
this->physicsEngine->Load(rootNode);
+ this->threadsP->Load(rootNode);
+ this->saveStateTimeoutP->Load(rootNode);
+ this->saveStateBufferSizeP->Load(rootNode);
+
+ this->worldStates.resize(**this->saveStateBufferSizeP);
+ this->worldStatesInsertIter = this->worldStates.begin();
+ this->worldStatesEndIter = this->worldStates.begin();
+ this->worldStatesCurrentIter = this->worldStatesInsertIter;
+
+
#ifdef USE_THREADPOOL
// start a thread pool with X threads
- this->threadsP->Load(rootNode);
this->threadPool = new boost::threadpool::pool(this->threadsP->GetValue());
#endif
}
@@ -219,6 +228,10 @@
{
std::vector< Model* >::iterator miter;
+ std::cout << prefix << " " << *(this->threadsP);
+ std::cout << prefix << " " << *(this->saveStateTimeoutP);
+ std::cout << prefix << " " << *(this->saveStateBufferSizeP);
+
// Save all the models
for (miter=this->models.begin(); miter!=this->models.end(); miter++)
{
@@ -260,6 +273,7 @@
this->graphics->Init();
this->factory->Init();
+ this->saveStateTimer.Start();
}
////////////////////////////////////////////////////////////////////////////////
@@ -333,7 +347,12 @@
Simulator::Instance()->GetPhysicsEnabled())
{
this->physicsEngine->UpdatePhysics();
- this->SaveState();
+
+ if (this->saveStateTimer.GetElapsed() > **this->saveStateTimeoutP)
+ {
+ this->SaveState();
+ this->saveStateTimer.Start();
+ }
}
this->factory->Update();
Modified: code/gazebo/trunk/server/World.hh
===================================================================
--- code/gazebo/trunk/server/World.hh 2009-11-23 23:59:22 UTC (rev 8440)
+++ code/gazebo/trunk/server/World.hh 2009-11-24 01:14:03 UTC (rev 8441)
@@ -46,6 +46,7 @@
#include "Pose3d.hh"
#include "Entity.hh"
#include "Global.hh"
+#include "Timer.hh"
namespace gazebo
{
@@ -64,6 +65,8 @@
class OpenAL;
class Factory;
class WorldState;
+ class Timer;
+ class Time;
/// \brief The World
/*
@@ -271,10 +274,12 @@
private: OpenAL *openAL;
-#ifdef USE_THREADPOOL
- private: ParamT<int>* threadsP;
/// List of all the parameters
protected: std::vector<Param*> parameters;
+
+ private: ParamT<int>* threadsP;
+
+#ifdef USE_THREADPOOL
public: boost::threadpool::pool* threadPool;
#endif
@@ -287,6 +292,10 @@
private: std::deque<WorldState>::iterator worldStatesInsertIter;
private: std::deque<WorldState>::iterator worldStatesEndIter;
private: std::deque<WorldState>::iterator worldStatesCurrentIter;
+
+ private: Timer saveStateTimer;
+ private: ParamT<Time> *saveStateTimeoutP;
+ private: ParamT<unsigned int> *saveStateBufferSizeP;
};
class WorldState
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now. http://p.sf.net/sfu/bobj-july
_______________________________________________
Playerstage-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/playerstage-commit