lintel 0.2.0
Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | List of all members
lintel::MessageQueue< T > Class Template Reference

#include <MessageQueue.h>

Public Member Functions

bool isOwner () const
 
const std::string & getProcessName () const
 
const std::string & getName () const
 
int32_t getMsgCount () const
 
int32_t numberMessagesOf () const
 
 MessageQueue (std::string processName, std::string name, int32_t msgCount, std::shared_ptr< ProcessName > realProcessName)
 
void sendOf (const T &message)
 
bool trySendOf (const T &message)
 
bool sendOfWithTimeout (const T &message, const std::chrono::milliseconds &timeout)
 
std::uint64_t droppedMessagesOf () const
 
T receiveOf ()
 
std::optional< T > tryReceiveOf ()
 
bool operator< (const MessageQueue &rhs) const
 
bool operator> (const MessageQueue &rhs) const
 
bool operator<= (const MessageQueue &rhs) const
 
bool operator>= (const MessageQueue &rhs) const
 
bool operator== (const MessageQueue &rhs) const
 
bool operator!= (const MessageQueue &rhs) const
 

Static Public Member Functions

static void removeOf (const std::string &messageQueueName)
 

Detailed Description

template<typename T>
class lintel::MessageQueue< T >

MessageQueue wrapper class for boost::interprocess::message

Constructor & Destructor Documentation

◆ MessageQueue()

template<typename T >
lintel::MessageQueue< T >::MessageQueue ( std::string  processName,
std::string  name,
int32_t  msgCount,
std::shared_ptr< ProcessName >  realProcessName 
)
inline
Parameters
processNamename of the owning process
nameof message queue. No filepath just name.
msgCountlimit of queue itself
realProcessNameshared handle used to resolve the process name

Member Function Documentation

◆ droppedMessagesOf()

template<typename T >
std::uint64_t lintel::MessageQueue< T >::droppedMessagesOf ( ) const
inline
Returns
the number of messages dropped because the queue stayed full beyond the configured timeout

◆ getMsgCount()

template<typename T >
int32_t lintel::MessageQueue< T >::getMsgCount ( ) const
inline
Returns
maximum number of messages the queue can hold

◆ getName()

template<typename T >
const std::string & lintel::MessageQueue< T >::getName ( ) const
inline
Returns
queue name

◆ getProcessName()

template<typename T >
const std::string & lintel::MessageQueue< T >::getProcessName ( ) const
inline
Returns
process name associated with this queue

◆ isOwner()

template<typename T >
bool lintel::MessageQueue< T >::isOwner ( ) const
inline
Returns
true if the current process owns this message queue

◆ numberMessagesOf()

template<typename T >
int32_t lintel::MessageQueue< T >::numberMessagesOf ( ) const
inline
Returns
current number of messages in the queue

◆ operator!=()

template<typename T >
bool lintel::MessageQueue< T >::operator!= ( const MessageQueue< T > &  rhs) const
inline
Returns
true if queues are not equal

◆ operator<()

template<typename T >
bool lintel::MessageQueue< T >::operator< ( const MessageQueue< T > &  rhs) const
inline
Returns
true if this queue is less than rhs

◆ operator<=()

template<typename T >
bool lintel::MessageQueue< T >::operator<= ( const MessageQueue< T > &  rhs) const
inline
Returns
true if this queue is less than or equal to rhs

◆ operator==()

template<typename T >
bool lintel::MessageQueue< T >::operator== ( const MessageQueue< T > &  rhs) const
inline
Returns
true if queues are equal

◆ operator>()

template<typename T >
bool lintel::MessageQueue< T >::operator> ( const MessageQueue< T > &  rhs) const
inline
Returns
true if this queue is greater than rhs

◆ operator>=()

template<typename T >
bool lintel::MessageQueue< T >::operator>= ( const MessageQueue< T > &  rhs) const
inline
Returns
true if this queue is greater than or equal to rhs

◆ receiveOf()

template<typename T >
T lintel::MessageQueue< T >::receiveOf ( )
inline

receives message. No message => waits until message is available

Returns
messages

◆ removeOf()

template<typename T >
static void lintel::MessageQueue< T >::removeOf ( const std::string &  messageQueueName)
inlinestatic

remove of message queue

◆ sendOf()

template<typename T >
void lintel::MessageQueue< T >::sendOf ( const T &  message)
inline

send of message. Message Queue full => blocks until message queue is free

Parameters
message

◆ sendOfWithTimeout()

template<typename T >
bool lintel::MessageQueue< T >::sendOfWithTimeout ( const T &  message,
const std::chrono::milliseconds &  timeout 
)
inline

send with a bounded wait. If the message queue stays full for the whole timeout the message is dropped and the drop counter is increased.

Parameters
messagethe message to send
timeoutmaximum time to wait for queue space
Returns
true if the message was queued, false if it was dropped

◆ tryReceiveOf()

template<typename T >
std::optional< T > lintel::MessageQueue< T >::tryReceiveOf ( )
inline

try to receive message. No message => non blocking and return nullopt

Returns
optional of received message

◆ trySendOf()

template<typename T >
bool lintel::MessageQueue< T >::trySendOf ( const T &  message)
inline

send non blocking. Message Queue full => return false and doesn't send message.

Parameters
message

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