23 #ifndef _SENSORMANAGER_HH_
24 #define _SENSORMANAGER_HH_
26 #include <boost/thread.hpp>
49 public: common::Time time;
52 public: boost::condition_variable *condition;
57 class SimTimeEventHandler
60 public: SimTimeEventHandler();
63 public:
virtual ~SimTimeEventHandler();
70 public:
void AddRelativeEvent(
const common::Time &_time,
71 boost::condition_variable *_var);
75 private:
void OnUpdate(
const common::UpdateInfo &_info);
78 private: boost::mutex mutex;
81 private: std::list<SimTimeEvent*> events;
106 public:
void Update(
bool _force =
false);
123 public:
void GetSensorTypes(std::vector<std::string> &_types)
const;
127 const std::string &_worldName,
138 const std::string &_worldName,
139 const std::string &_parentName,
167 private:
void AddSensor(
SensorPtr _sensor);
198 public:
virtual void Update(
bool _force =
false);
202 public:
void AddSensor(
SensorPtr _sensor);
210 bool _useLeafName =
false)
const;
225 private:
void RunLoop();
235 private:
bool initialized;
238 private: boost::thread *runThread;
241 private:
mutable boost::recursive_mutex mutex;
245 private: boost::condition_variable runCondition;
257 public:
virtual void Update(
bool _force =
false);
263 private:
bool initialized;
266 private:
bool removeAllSensors;
269 private:
mutable boost::recursive_mutex mutex;
275 private: std::vector<std::string> removeSensors;
278 private:
typedef std::vector<SensorContainer*> SensorContainer_V;
281 private: SensorContainer_V sensorContainers;
290 private: SimTimeEventHandler *simTimeEventHandler;