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

#include <internal_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, bool reset=true)
 
 TimerManager ()
 
 ~TimerManager ()
 

Static Public Member Functions

static TimerManagerglobal ()
 

Private Types

typedef std::list< int32_t > L_int32
 
typedef boost::shared_ptr< TimerInfoTimerInfoPtr
 
typedef boost::weak_ptr< TimerInfoTimerInfoWPtr
 
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_
 
ros::internal::condition_variable_monotonic 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 38 of file internal_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 102 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 98 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 99 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 100 of file timer_manager.h.

Constructor & Destructor Documentation

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

Definition at line 224 of file timer_manager.h.

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

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

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

Definition at line 114 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 272 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 345 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 386 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,
bool  reset = true 
)

Definition at line 436 of file timer_manager.h.

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

Definition at line 483 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 409 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 243 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 136 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 137 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 131 of file timer_manager.h.

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

Definition at line 143 of file timer_manager.h.

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

Definition at line 141 of file timer_manager.h.

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

Definition at line 139 of file timer_manager.h.

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

Definition at line 128 of file timer_manager.h.

template<class T , class D , class E >
ros::internal::condition_variable_monotonic ros::TimerManager< T, D, E >::timers_cond_
private

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

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

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


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


roscpp
Author(s): Morgan Quigley, Josh Faust, Brian Gerkey, Troy Straszheim, Dirk Thomas
autogenerated on Mon Nov 2 2020 03:52:27