Classes | Public Member Functions | Static Public Member Functions | Private Types | Private Member Functions | Private Attributes
ros::TimerManager< T, D, E > Class Template Reference

#include <timer_manager.h>

List of all members.

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 TimerManagerglobal ()

Private Types

typedef std::list< int32_t > L_int32
typedef boost::shared_ptr
< TimerInfo
TimerInfoPtr
typedef boost::weak_ptr
< TimerInfo
TimerInfoWPtr
typedef std::vector< TimerInfoPtrV_TimerInfo

Private Member Functions

TimerInfoPtr findTimer (int32_t handle)
void schedule (const TimerInfoPtr &info)
void threadFunc ()
void updateNext (const TimerInfoPtr &info, const T &current_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_

Detailed Description

template<class T, class D, class E>
class ros::TimerManager< T, D, E >

Definition at line 50 of file timer_manager.h.


Member Typedef Documentation

template<class T, class D, class E>
typedef std::list<int32_t> ros::TimerManager< T, D, E >::L_int32 [private]

Definition at line 86 of file timer_manager.h.

template<class T, class D, class E>
typedef boost::shared_ptr<TimerInfo> ros::TimerManager< T, D, E >::TimerInfoPtr [private]

Definition at line 82 of file timer_manager.h.

template<class T, class D, class E>
typedef boost::weak_ptr<TimerInfo> ros::TimerManager< T, D, E >::TimerInfoWPtr [private]

Definition at line 83 of file timer_manager.h.

template<class T, class D, class E>
typedef std::vector<TimerInfoPtr> ros::TimerManager< T, D, E >::V_TimerInfo [private]

Definition at line 84 of file timer_manager.h.


Constructor & Destructor Documentation

template<class T , class D , class E >
ros::TimerManager< T, D, E >::TimerManager ( )

Definition at line 208 of file timer_manager.h.

template<class T , class D , class E >
ros::TimerManager< T, D, E >::~TimerManager ( )

Definition at line 215 of file timer_manager.h.


Member Function Documentation

template<class T , class D , class E >
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 
)

Definition at line 282 of file timer_manager.h.

template<class T , class D , class E >
TimerManager< T, D, E >::TimerInfoPtr ros::TimerManager< T, D, E >::findTimer ( int32_t  handle) [private]

Definition at line 242 of file timer_manager.h.

template<class T, class D, class E>
static TimerManager& ros::TimerManager< T, D, E >::global ( ) [inline, static]

Definition at line 98 of file timer_manager.h.

template<class T , class D , class E >
bool ros::TimerManager< T, D, E >::hasPending ( int32_t  handle)

Definition at line 258 of file timer_manager.h.

template<class T , class D , class E >
void ros::TimerManager< T, D, E >::remove ( int32_t  handle)

Definition at line 331 of file timer_manager.h.

template<class T , class D , class E >
void ros::TimerManager< T, D, E >::schedule ( const TimerInfoPtr info) [private]

Definition at line 372 of file timer_manager.h.

template<class T , class D , class E >
void ros::TimerManager< T, D, E >::setPeriod ( int32_t  handle,
const D &  period 
)

Definition at line 422 of file timer_manager.h.

template<class T , class D , class E >
void ros::TimerManager< T, D, E >::threadFunc ( ) [private]

Definition at line 445 of file timer_manager.h.

template<class T , class D , class E >
void ros::TimerManager< T, D, E >::updateNext ( const TimerInfoPtr info,
const T &  current_time 
) [private]

Definition at line 395 of file timer_manager.h.

template<class T , class D , class E >
bool ros::TimerManager< T, D, E >::waitingCompare ( int32_t  lhs,
int32_t  rhs 
) [private]

Definition at line 229 of file timer_manager.h.


Member Data Documentation

template<class T, class D, class E>
uint32_t ros::TimerManager< T, D, E >::id_counter_ [private]

Definition at line 120 of file timer_manager.h.

template<class T, class D, class E>
boost::mutex ros::TimerManager< T, D, E >::id_mutex_ [private]

Definition at line 121 of file timer_manager.h.

template<class T, class D, class E>
volatile bool ros::TimerManager< T, D, E >::new_timer_ [private]

Definition at line 115 of file timer_manager.h.

template<class T, class D, class E>
bool ros::TimerManager< T, D, E >::quit_ [private]

Definition at line 127 of file timer_manager.h.

template<class T, class D, class E>
boost::thread ros::TimerManager< T, D, E >::thread_ [private]

Definition at line 125 of file timer_manager.h.

template<class T, class D, class E>
bool ros::TimerManager< T, D, E >::thread_started_ [private]

Definition at line 123 of file timer_manager.h.

template<class T, class D, class E>
V_TimerInfo ros::TimerManager< T, D, E >::timers_ [private]

Definition at line 112 of file timer_manager.h.

template<class T, class D, class E>
boost::condition_variable ros::TimerManager< T, D, E >::timers_cond_ [private]

Definition at line 114 of file timer_manager.h.

template<class T, class D, class E>
boost::mutex ros::TimerManager< T, D, E >::timers_mutex_ [private]

Definition at line 113 of file timer_manager.h.

template<class T, class D, class E>
L_int32 ros::TimerManager< T, D, E >::waiting_ [private]

Definition at line 118 of file timer_manager.h.

template<class T, class D, class E>
boost::mutex ros::TimerManager< T, D, E >::waiting_mutex_ [private]

Definition at line 117 of file timer_manager.h.


The documentation for this class was generated from the following file:


roscpp
Author(s): Morgan Quigley mquigley@cs.stanford.edu, Josh Faust jfaust@willowgarage.com, Brian Gerkey gerkey@willowgarage.com, Troy Straszheim straszheim@willowgarage.com
autogenerated on Sat Dec 28 2013 17:35:53