#include <timer_manager.h>
Classes | |
struct | TimerInfo |
class | TimerQueueCallback |
Public Member Functions | |
int32_t | add (const D &period, const boost::function< void(const E &)> &callback, CallbackQueueInterface *callback_queue, const VoidConstPtr &tracked_object, bool oneshot) |
bool | hasPending (int32_t handle) |
void | remove (int32_t handle) |
void | setPeriod (int32_t handle, const D &period) |
TimerManager () | |
~TimerManager () | |
Static Public Member Functions | |
static TimerManager & | global () |
Private Types | |
typedef std::list< int32_t > | L_int32 |
typedef boost::shared_ptr < TimerInfo > | TimerInfoPtr |
typedef boost::weak_ptr < TimerInfo > | TimerInfoWPtr |
typedef std::vector< TimerInfoPtr > | V_TimerInfo |
Private Member Functions | |
TimerInfoPtr | findTimer (int32_t handle) |
void | schedule (const TimerInfoPtr &info) |
void | threadFunc () |
void | updateNext (const TimerInfoPtr &info, const T ¤t_time) |
bool | waitingCompare (int32_t lhs, int32_t rhs) |
Private Attributes | |
uint32_t | id_counter_ |
boost::mutex | id_mutex_ |
volatile bool | new_timer_ |
bool | quit_ |
boost::thread | thread_ |
bool | thread_started_ |
V_TimerInfo | timers_ |
boost::condition_variable | timers_cond_ |
boost::mutex | timers_mutex_ |
L_int32 | waiting_ |
boost::mutex | waiting_mutex_ |
Definition at line 37 of file timer_manager.h.
typedef std::list<int32_t> ros::TimerManager< T, D, E >::L_int32 [private] |
Definition at line 69 of file timer_manager.h.
typedef boost::shared_ptr<TimerInfo> ros::TimerManager< T, D, E >::TimerInfoPtr [private] |
Definition at line 65 of file timer_manager.h.
typedef boost::weak_ptr<TimerInfo> ros::TimerManager< T, D, E >::TimerInfoWPtr [private] |
Definition at line 66 of file timer_manager.h.
typedef std::vector<TimerInfoPtr> ros::TimerManager< T, D, E >::V_TimerInfo [private] |
Definition at line 67 of file timer_manager.h.
ros::TimerManager< T, D, E >::TimerManager | ( | ) | [inline] |
Definition at line 195 of file timer_manager.h.
ros::TimerManager< T, D, E >::~TimerManager | ( | ) | [inline] |
Definition at line 202 of file timer_manager.h.
int32_t ros::TimerManager< T, D, E >::add | ( | const D & | period, | |
const boost::function< void(const E &)> & | callback, | |||
CallbackQueueInterface * | callback_queue, | |||
const VoidConstPtr & | tracked_object, | |||
bool | oneshot | |||
) | [inline] |
Definition at line 269 of file timer_manager.h.
TimerManager< T, D, E >::TimerInfoPtr ros::TimerManager< T, D, E >::findTimer | ( | int32_t | handle | ) | [inline, private] |
Definition at line 229 of file timer_manager.h.
static TimerManager& ros::TimerManager< T, D, E >::global | ( | ) | [inline, static] |
Definition at line 81 of file timer_manager.h.
bool ros::TimerManager< T, D, E >::hasPending | ( | int32_t | handle | ) | [inline] |
Definition at line 245 of file timer_manager.h.
void ros::TimerManager< T, D, E >::remove | ( | int32_t | handle | ) | [inline] |
Definition at line 318 of file timer_manager.h.
void ros::TimerManager< T, D, E >::schedule | ( | const TimerInfoPtr & | info | ) | [private] |
void ros::TimerManager< T, D, E >::setPeriod | ( | int32_t | handle, | |
const D & | period | |||
) | [inline] |
Definition at line 398 of file timer_manager.h.
void ros::TimerManager< T, D, E >::threadFunc | ( | ) | [inline, private] |
Definition at line 421 of file timer_manager.h.
void ros::TimerManager< T, D, E >::updateNext | ( | const TimerInfoPtr & | info, | |
const T & | current_time | |||
) | [private] |
bool ros::TimerManager< T, D, E >::waitingCompare | ( | int32_t | lhs, | |
int32_t | rhs | |||
) | [inline, private] |
Definition at line 216 of file timer_manager.h.
uint32_t ros::TimerManager< T, D, E >::id_counter_ [private] |
Definition at line 103 of file timer_manager.h.
boost::mutex ros::TimerManager< T, D, E >::id_mutex_ [private] |
Definition at line 104 of file timer_manager.h.
volatile bool ros::TimerManager< T, D, E >::new_timer_ [private] |
Definition at line 98 of file timer_manager.h.
bool ros::TimerManager< T, D, E >::quit_ [private] |
Definition at line 110 of file timer_manager.h.
boost::thread ros::TimerManager< T, D, E >::thread_ [private] |
Definition at line 108 of file timer_manager.h.
bool ros::TimerManager< T, D, E >::thread_started_ [private] |
Definition at line 106 of file timer_manager.h.
V_TimerInfo ros::TimerManager< T, D, E >::timers_ [private] |
Definition at line 95 of file timer_manager.h.
boost::condition_variable ros::TimerManager< T, D, E >::timers_cond_ [private] |
Definition at line 97 of file timer_manager.h.
boost::mutex ros::TimerManager< T, D, E >::timers_mutex_ [private] |
Definition at line 96 of file timer_manager.h.
L_int32 ros::TimerManager< T, D, E >::waiting_ [private] |
Definition at line 101 of file timer_manager.h.
boost::mutex ros::TimerManager< T, D, E >::waiting_mutex_ [private] |
Definition at line 100 of file timer_manager.h.