Fawkes API
Fawkes Development Version
|
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... | |
Message * | first () |
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... | |
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.
Definition at line 41 of file message_queue.h.
fawkes::MessageQueue::MessageQueue | ( | ) |
Constructor.
Definition at line 56 of file message_queue.cpp.
|
virtual |
void fawkes::MessageQueue::append | ( | Message * | msg | ) |
Append message to queue.
msg | Message to append |
MessageAlreadyQueuedException | thrown if the message has already been enqueued to an interface. |
Definition at line 96 of file message_queue.cpp.
References fawkes::Message::enqueued(), fawkes::Message::id(), fawkes::Mutex::lock(), fawkes::Message::mark_enqueued(), and fawkes::Mutex::unlock().
Referenced by fawkes::Interface::msgq_append().
MessageQueue::MessageIterator fawkes::MessageQueue::begin | ( | ) |
Get iterator to first element in message queue.
NotLockedException | thrown if message queue is not locked during this operation. |
Definition at line 309 of file message_queue.cpp.
References fawkes::Mutex::try_lock(), and fawkes::Mutex::unlock().
Referenced by fawkes::Interface::msgq_begin().
bool fawkes::MessageQueue::empty | ( | ) | const |
Check if message queue is empty.
Definition at line 238 of file message_queue.cpp.
References fawkes::Mutex::lock(), and fawkes::Mutex::unlock().
Referenced by fawkes::Interface::msgq_empty().
MessageQueue::MessageIterator fawkes::MessageQueue::end | ( | ) |
Get iterator to element beyond end of message queue list.
NotLockedException | thrown if message queue is not locked during this operation. |
Definition at line 323 of file message_queue.cpp.
References fawkes::Mutex::try_lock(), and fawkes::Mutex::unlock().
Referenced by fawkes::Interface::msgq_end().
Message * fawkes::MessageQueue::first | ( | ) |
Get first message from queue.
Definition at line 283 of file message_queue.cpp.
Referenced by fawkes::Interface::msgq_first(), and fawkes::Interface::msgq_first_is().
void fawkes::MessageQueue::flush | ( | ) |
Delete all messages from queue.
This method deletes all messages from the queue.
Definition at line 74 of file message_queue.cpp.
References fawkes::Mutex::lock(), and fawkes::Mutex::unlock().
Referenced by fawkes::Interface::msgq_flush(), and ~MessageQueue().
void fawkes::MessageQueue::insert_after | ( | const MessageIterator & | it, |
Message * | msg | ||
) |
Enqueue message after given iterator.
it | Iterator |
msg | Message to enqueue |
NullPointerException | thrown if iterator is end iterator. |
NotLockedException | thrown if message queue is not locked during this operation. |
MessageAlreadyQueuedException | thrown if the message has already been enqueued to an interface. |
Definition at line 130 of file message_queue.cpp.
References fawkes::Message::enqueued(), fawkes::Message::id(), fawkes::Message::mark_enqueued(), fawkes::Mutex::try_lock(), and fawkes::Mutex::unlock().
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 253 of file message_queue.cpp.
References fawkes::Mutex::lock().
Referenced by fawkes::Interface::msgq_lock().
void fawkes::MessageQueue::pop | ( | ) |
Erase first message from queue.
Definition at line 295 of file message_queue.cpp.
References fawkes::Mutex::lock(), remove(), and fawkes::Mutex::unlock().
Referenced by fawkes::Interface::msgq_pop().
void fawkes::MessageQueue::remove | ( | const Message * | msg | ) |
Remove message from queue.
msg | message to remove |
Definition at line 157 of file message_queue.cpp.
References fawkes::Mutex::lock(), and fawkes::Mutex::unlock().
Referenced by fawkes::Interface::msgq_remove(), pop(), and remove().
void fawkes::MessageQueue::remove | ( | const unsigned int | msg_id | ) |
Remove message from queue by message id.
msg_id | id of message to remove |
Definition at line 178 of file message_queue.cpp.
References fawkes::Mutex::lock(), remove(), and fawkes::Mutex::unlock().
unsigned int fawkes::MessageQueue::size | ( | ) | const |
Get number of messages in queue.
Definition at line 220 of file message_queue.cpp.
References fawkes::Mutex::lock(), and fawkes::Mutex::unlock().
Referenced by fawkes::Interface::msgq_size().
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.
Definition at line 266 of file message_queue.cpp.
References fawkes::Mutex::try_lock().
Referenced by fawkes::Interface::msgq_try_lock().
void fawkes::MessageQueue::unlock | ( | ) |
Unlock message queue.
Definition at line 274 of file message_queue.cpp.
References fawkes::Mutex::unlock().
Referenced by fawkes::Interface::msgq_unlock().