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_
 
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 38 of file internal_timer_manager.h.

Member Typedef Documentation

◆ L_int32

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

Definition at line 105 of file timer_manager.h.

◆ TimerInfoPtr

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

Definition at line 101 of file timer_manager.h.

◆ TimerInfoWPtr

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

Definition at line 102 of file timer_manager.h.

◆ V_TimerInfo

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

Definition at line 103 of file timer_manager.h.

Constructor & Destructor Documentation

◆ TimerManager()

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

Definition at line 234 of file timer_manager.h.

◆ ~TimerManager()

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

Definition at line 247 of file timer_manager.h.

Member Function Documentation

◆ add()

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 314 of file timer_manager.h.

◆ findTimer()

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 274 of file timer_manager.h.

◆ global()

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

Definition at line 117 of file timer_manager.h.

◆ hasPending()

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

Definition at line 290 of file timer_manager.h.

◆ remove()

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

Definition at line 363 of file timer_manager.h.

◆ schedule()

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

Definition at line 404 of file timer_manager.h.

◆ setPeriod()

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 454 of file timer_manager.h.

◆ threadFunc()

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

Definition at line 501 of file timer_manager.h.

◆ updateNext()

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 427 of file timer_manager.h.

◆ waitingCompare()

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

Definition at line 261 of file timer_manager.h.

Member Data Documentation

◆ id_counter_

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

Definition at line 139 of file timer_manager.h.

◆ id_mutex_

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

Definition at line 140 of file timer_manager.h.

◆ new_timer_

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

Definition at line 134 of file timer_manager.h.

◆ quit_

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

Definition at line 146 of file timer_manager.h.

◆ thread_

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

Definition at line 144 of file timer_manager.h.

◆ thread_started_

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

Definition at line 142 of file timer_manager.h.

◆ timers_

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

Definition at line 131 of file timer_manager.h.

◆ timers_cond_

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

Definition at line 133 of file timer_manager.h.

◆ timers_mutex_

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

Definition at line 132 of file timer_manager.h.

◆ waiting_

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

Definition at line 137 of file timer_manager.h.

◆ waiting_mutex_

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

Definition at line 136 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 , Jacob Perron
autogenerated on Thu Nov 23 2023 04:01:45