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 37 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 69 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 65 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 66 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 67 of file timer_manager.h.


Constructor & Destructor Documentation

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

Definition at line 195 of file timer_manager.h.

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

Definition at line 202 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 
) [inline]

Definition at line 269 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  )  [inline, private]

Definition at line 229 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 81 of file timer_manager.h.

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

Definition at line 245 of file timer_manager.h.

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

Definition at line 318 of file timer_manager.h.

template<class T, class D, class E>
void ros::TimerManager< T, D, E >::schedule ( const TimerInfoPtr info  )  [private]
template<class T , class D , class E >
void ros::TimerManager< T, D, E >::setPeriod ( int32_t  handle,
const D &  period 
) [inline]

Definition at line 398 of file timer_manager.h.

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

Definition at line 421 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]
template<class T , class D , class E >
bool ros::TimerManager< T, D, E >::waitingCompare ( int32_t  lhs,
int32_t  rhs 
) [inline, private]

Definition at line 216 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 103 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 104 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 98 of file timer_manager.h.

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

Definition at line 110 of file timer_manager.h.

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

Definition at line 108 of file timer_manager.h.

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

Definition at line 106 of file timer_manager.h.

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

Definition at line 95 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 97 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 96 of file timer_manager.h.

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

Definition at line 101 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 100 of file timer_manager.h.


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines


roscpp
Author(s): Morgan Quigley mquigley@cs.stanford.edu, Josh Faust jfaust@willowgarage.com, Brian Gerkey gerkey@willowgarage.com
autogenerated on Fri Jan 11 10:08:41 2013