Fawkes API  Fawkes Development Version
fawkes::MessageQueue Class Reference

Message queue used in interfaces. More...

#include <>>

Classes

class  MessageIterator
 Message iterator. More...
 

Public Member Functions

 MessageQueue ()
 Constructor. More...
 
virtual ~MessageQueue ()
 Destructor. More...
 
void append (Message *msg)
 Append message to queue. More...
 
void remove (const Message *msg)
 Remove message from queue. More...
 
void remove (const unsigned int msg_id)
 Remove message from queue by message id. More...
 
void insert_after (const MessageIterator &it, Message *msg)
 Enqueue message after given iterator. More...
 
unsigned int size () const
 Get number of messages in queue. More...
 
void flush ()
 Delete all messages from queue. More...
 
bool empty () const
 Check if message queue is empty. More...
 
void lock ()
 Lock message queue. More...
 
bool try_lock ()
 Try to lock message queue. More...
 
void unlock ()
 Unlock message queue. More...
 
Messagefirst ()
 Get first message from queue. More...
 
void pop ()
 Erase first message from queue. More...
 
MessageIterator begin ()
 Get iterator to first element in message queue. More...
 
MessageIterator end ()
 Get iterator to element beyond end of message queue list. More...
 

Detailed Description

Message queue used in interfaces.

This message queue handles the basic messaging operations. The methods the Interface provides for handling message queues are forwarded to a MessageQueue instance.

See also
Interface

Definition at line 42 of file message_queue.h.

Constructor & Destructor Documentation

◆ MessageQueue()

fawkes::MessageQueue::MessageQueue ( )

Constructor.

Definition at line 61 of file message_queue.cpp.

◆ ~MessageQueue()

fawkes::MessageQueue::~MessageQueue ( )
virtual

Destructor.

Definition at line 70 of file message_queue.cpp.

Member Function Documentation

◆ append()

void fawkes::MessageQueue::append ( Message msg)

Append message to queue.

Parameters
msgMessage to append
Exceptions
MessageAlreadyQueuedExceptionthrown if the message has already been enqueued to an interface.

Definition at line 104 of file message_queue.cpp.

References fawkes::Message::enqueued(), fawkes::Message::id(), fawkes::Message::mark_enqueued(), and fawkes::MessageAlreadyQueuedException::MessageAlreadyQueuedException().

◆ begin()

MessageQueue::MessageIterator fawkes::MessageQueue::begin ( )

Get iterator to first element in message queue.

Returns
iterator to first element in message queue
Exceptions
NotLockedExceptionthrown if message queue is not locked during this operation.

Definition at line 330 of file message_queue.cpp.

◆ empty()

bool fawkes::MessageQueue::empty ( ) const

Check if message queue is empty.

Returns
true if message queue is empty, false otherwise

Definition at line 253 of file message_queue.cpp.

◆ end()

MessageQueue::MessageIterator fawkes::MessageQueue::end ( )

Get iterator to element beyond end of message queue list.

Returns
iterator to element beyond end of message queue list
Exceptions
NotLockedExceptionthrown if message queue is not locked during this operation.

Definition at line 345 of file message_queue.cpp.

References fawkes::MessageQueue::MessageIterator::MessageIterator().

◆ first()

Message * fawkes::MessageQueue::first ( )

Get first message from queue.

Returns
first message from queue

Definition at line 302 of file message_queue.cpp.

◆ flush()

void fawkes::MessageQueue::flush ( )

Delete all messages from queue.

This method deletes all messages from the queue.

Definition at line 81 of file message_queue.cpp.

◆ insert_after()

void fawkes::MessageQueue::insert_after ( const MessageIterator it,
Message msg 
)

Enqueue message after given iterator.

Parameters
itIterator
msgMessage to enqueue
Returns
message queue id of the appended message.
Exceptions
NullPointerExceptionthrown if iterator is end iterator.
NotLockedExceptionthrown if message queue is not locked during this operation.
MessageAlreadyQueuedExceptionthrown if the message has already been enqueued to an interface.

Definition at line 140 of file message_queue.cpp.

References fawkes::Message::enqueued(), fawkes::Message::id(), fawkes::Message::mark_enqueued(), and fawkes::MessageAlreadyQueuedException::MessageAlreadyQueuedException().

◆ lock()

void fawkes::MessageQueue::lock ( )

Lock message queue.

No operations can be performed on the message queue after locking it. Note that you cannot call any method of the message queue as long as the queue is locked. Use lock() only to have a secure run-through with the MessageIterator.

Definition at line 269 of file message_queue.cpp.

◆ pop()

void fawkes::MessageQueue::pop ( )

Erase first message from queue.

Definition at line 315 of file message_queue.cpp.

◆ remove() [1/2]

void fawkes::MessageQueue::remove ( const Message msg)

Remove message from queue.

Parameters
msgmessage to remove

Definition at line 168 of file message_queue.cpp.

Referenced by remove().

◆ remove() [2/2]

void fawkes::MessageQueue::remove ( const unsigned int  msg_id)

Remove message from queue by message id.

Parameters
msg_idid of message to remove

Definition at line 190 of file message_queue.cpp.

References remove().

◆ size()

unsigned int fawkes::MessageQueue::size ( ) const

Get number of messages in queue.

Returns
number of messages in queue.

Definition at line 234 of file message_queue.cpp.

◆ try_lock()

bool fawkes::MessageQueue::try_lock ( )

Try to lock message queue.

No operations can be performed on the message queue after locking it. Note that you cannot call any method of the message queue as long as the queue is locked. Use try_lock() only to have a secure run-through with the MessageIterator.

Returns
true, if the lock has been aquired, false otherwise.

Definition at line 283 of file message_queue.cpp.

◆ unlock()

void fawkes::MessageQueue::unlock ( )

Unlock message queue.

Definition at line 292 of file message_queue.cpp.


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