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. More...
 
void run ()
 run the worker thread function sending out messages via callback More...
 
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

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

Definition at line 74 of file MessageQueue.h.

◆ MessageType

using MessageType = MessageT

Definition at line 72 of file MessageQueue.h.

Constructor & Destructor Documentation

◆ MessageQueue() [1/3]

MessageQueue ( )
inline

Definition at line 76 of file MessageQueue.h.

◆ MessageQueue() [2/3]

MessageQueue ( const MessageQueue< MessageT > &  )
delete

◆ MessageQueue() [3/3]

MessageQueue ( Args...  args)
inline

Definition at line 82 of file MessageQueue.h.

◆ ~MessageQueue()

~MessageQueue ( )
inline

Definition at line 89 of file MessageQueue.h.

Member Function Documentation

◆ clear()

void clear ( )
inline

Definition at line 226 of file MessageQueue.h.

◆ connect()

void connect ( Args...  args)
inline

Definition at line 108 of file MessageQueue.h.

◆ disable()

void disable ( )
inline

Definition at line 206 of file MessageQueue.h.

◆ enable()

void enable ( )
inline

Definition at line 199 of file MessageQueue.h.

◆ push()

void push ( MessageT  data)
inline

push data into the queue.

Parameters
data

Definition at line 123 of file MessageQueue.h.

◆ run()

void run ( )
inline

run the worker thread function sending out messages via callback

Definition at line 158 of file MessageQueue.h.

◆ setQueueSize()

void setQueueSize ( const size_t  maxQueueSize)
inlinenoexcept

Definition at line 237 of file MessageQueue.h.

◆ size()

std::size_t size ( ) const
inline

Definition at line 190 of file MessageQueue.h.

◆ waitUntilProcessed()

void waitUntilProcessed ( )
inline

Definition at line 213 of file MessageQueue.h.


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