Public Member Functions | Private Member Functions | Private Attributes | List of all members
PubMultiQueue Class Reference

A collection of PubQueue objects, potentially of different types. This class is the programmer's interface to this queuing system. More...

#include <PubQueue.h>

Public Member Functions

template<class T >
boost::shared_ptr< PubQueue< T > > addPub ()
 Add a new queue. Call this once for each published topic (or at least each type of publish message). More...
 
void notifyServiceThread ()
 Wake up the queue serive thread (e.g., after having pushed a message onto one of the queues). More...
 
 PubMultiQueue ()
 
void spin ()
 Service all queues indefinitely, waiting on a condition variable in between cycles. More...
 
void spinOnce ()
 Service each queue one time. More...
 
void startServiceThread ()
 Start a thread to call spin(). More...
 
 ~PubMultiQueue ()
 

Private Member Functions

template<class T >
void serviceFunc (boost::shared_ptr< PubQueue< T > > pq)
 Service a given queue by popping outgoing message off it and publishing them. More...
 

Private Attributes

boost::condition_variable service_cond_var_
 Condition variable used to block and resume service_thread_. More...
 
boost::mutex service_cond_var_lock_
 Mutex to accompany service_cond_var_. More...
 
std::list< boost::function< void()> > service_funcs_
 List of functions to be called to service our queues. More...
 
boost::mutex service_funcs_lock_
 Mutex to lock access to service_funcs_. More...
 
boost::thread service_thread_
 If started, the thread that will call the service functions. More...
 
bool service_thread_running_
 Boolean flag to shutdown the service thread if PubMultiQueue is destructed. More...
 

Detailed Description

A collection of PubQueue objects, potentially of different types. This class is the programmer's interface to this queuing system.

Definition at line 96 of file PubQueue.h.

Constructor & Destructor Documentation

◆ PubMultiQueue()

PubMultiQueue::PubMultiQueue ( )
inline

Definition at line 128 of file PubQueue.h.

◆ ~PubMultiQueue()

PubMultiQueue::~PubMultiQueue ( )
inline

Definition at line 129 of file PubQueue.h.

Member Function Documentation

◆ addPub()

template<class T >
boost::shared_ptr<PubQueue<T> > PubMultiQueue::addPub ( )
inline

Add a new queue. Call this once for each published topic (or at least each type of publish message).

Returns
Pointer to the newly created queue, good for calling push() on.

Definition at line 143 of file PubQueue.h.

◆ notifyServiceThread()

void PubMultiQueue::notifyServiceThread ( )
inline

Wake up the queue serive thread (e.g., after having pushed a message onto one of the queues).

Definition at line 189 of file PubQueue.h.

◆ serviceFunc()

template<class T >
void PubMultiQueue::serviceFunc ( boost::shared_ptr< PubQueue< T > >  pq)
inlineprivate

Service a given queue by popping outgoing message off it and publishing them.

Definition at line 115 of file PubQueue.h.

◆ spin()

void PubMultiQueue::spin ( )
inline

Service all queues indefinitely, waiting on a condition variable in between cycles.

Definition at line 170 of file PubQueue.h.

◆ spinOnce()

void PubMultiQueue::spinOnce ( )
inline

Service each queue one time.

Definition at line 157 of file PubQueue.h.

◆ startServiceThread()

void PubMultiQueue::startServiceThread ( )
inline

Start a thread to call spin().

Definition at line 181 of file PubQueue.h.

Member Data Documentation

◆ service_cond_var_

boost::condition_variable PubMultiQueue::service_cond_var_
private

Condition variable used to block and resume service_thread_.

Definition at line 108 of file PubQueue.h.

◆ service_cond_var_lock_

boost::mutex PubMultiQueue::service_cond_var_lock_
private

Mutex to accompany service_cond_var_.

Definition at line 110 of file PubQueue.h.

◆ service_funcs_

std::list<boost::function<void()> > PubMultiQueue::service_funcs_
private

List of functions to be called to service our queues.

Definition at line 100 of file PubQueue.h.

◆ service_funcs_lock_

boost::mutex PubMultiQueue::service_funcs_lock_
private

Mutex to lock access to service_funcs_.

Definition at line 102 of file PubQueue.h.

◆ service_thread_

boost::thread PubMultiQueue::service_thread_
private

If started, the thread that will call the service functions.

Definition at line 104 of file PubQueue.h.

◆ service_thread_running_

bool PubMultiQueue::service_thread_running_
private

Boolean flag to shutdown the service thread if PubMultiQueue is destructed.

Definition at line 106 of file PubQueue.h.


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


gazebo_plugins
Author(s): John Hsu
autogenerated on Thu Sep 5 2024 02:49:55