MessageQueue< MessageT > Class Template Reference

The purpose of the MessageQueue is to provide a convenient way to process incoming messages sequentially. More...

#include <armarx/localization_and_mapping/cartographer_adapter/MessageQueue.h>

Public Types

using Callback = std::function<void(MessageT)>
 
using MessageType = MessageT
 

Public Member Functions

void clear ()
 
template<class... Args>
void connect (Args... args)
 
void disable ()
 
void enable ()
 
 MessageQueue ()
 
template<class... Args>
 MessageQueue (Args... args)
 
 MessageQueue (const MessageQueue &)=delete
 
void push (MessageT data)
 push data into the queue.
 
void run ()
 run the worker thread function sending out messages via callback
 
void setQueueSize (const size_t maxQueueSize) noexcept
 
std::size_t size () const
 
void waitUntilProcessed ()
 
 ~MessageQueue ()
 

Detailed Description

template<class MessageT>
class armarx::localization_and_mapping::cartographer_adapter::MessageQueue< MessageT >

The purpose of the MessageQueue is to provide a convenient way to process incoming messages sequentially.

Althought, the main idea is to pass in ICE messages, the MessageQueue can be used for any data.

Usage example:

 struct ExampleMessage{
     int x, y;
 }

 class Consumer{
     public:

         void processMessage(const ExampleMessagePtr& message){
             // your implementation
         }
 }

 Consumer message_consumer;
 MessageQueue<ExampleMessage> message_queue(&Consumer::processMessage, message_consumer);

 message_queue.push({1, 2});
 message_queue.push({3, 4});

Definition at line 68 of file MessageQueue.h.

Member Typedef Documentation

◆ Callback

template<class MessageT>
using Callback = std::function<void(MessageT)>

Definition at line 74 of file MessageQueue.h.

◆ MessageType

template<class MessageT>
using MessageType = MessageT

Definition at line 72 of file MessageQueue.h.

Constructor & Destructor Documentation

◆ MessageQueue() [1/3]

template<class MessageT>
MessageQueue ( )
inline

Definition at line 76 of file MessageQueue.h.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ MessageQueue() [2/3]

template<class MessageT>
MessageQueue ( const MessageQueue< MessageT > & )
delete
+ Here is the call graph for this function:

◆ MessageQueue() [3/3]

template<class MessageT>
template<class... Args>
MessageQueue ( Args... args)
inline

Definition at line 82 of file MessageQueue.h.

+ Here is the call graph for this function:

◆ ~MessageQueue()

template<class MessageT>
~MessageQueue ( )
inline

Definition at line 89 of file MessageQueue.h.

Member Function Documentation

◆ clear()

template<class MessageT>
void clear ( )
inline

Definition at line 226 of file MessageQueue.h.

◆ connect()

template<class MessageT>
template<class... Args>
void connect ( Args... args)
inline

Definition at line 108 of file MessageQueue.h.

◆ disable()

template<class MessageT>
void disable ( )
inline

Definition at line 206 of file MessageQueue.h.

◆ enable()

template<class MessageT>
void enable ( )
inline

Definition at line 199 of file MessageQueue.h.

◆ push()

template<class MessageT>
void push ( MessageT data)
inline

push data into the queue.

Parameters
data

Definition at line 123 of file MessageQueue.h.

+ Here is the call graph for this function:

◆ run()

template<class MessageT>
void run ( )
inline

run the worker thread function sending out messages via callback

Definition at line 158 of file MessageQueue.h.

+ Here is the caller graph for this function:

◆ setQueueSize()

template<class MessageT>
void setQueueSize ( const size_t maxQueueSize)
inlinenoexcept

Definition at line 237 of file MessageQueue.h.

◆ size()

template<class MessageT>
std::size_t size ( ) const
inlinenodiscard

Definition at line 190 of file MessageQueue.h.

◆ waitUntilProcessed()

template<class MessageT>
void waitUntilProcessed ( )
inline

Definition at line 213 of file MessageQueue.h.


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