fawkes::MessageQueue Class Reference
Message queue used in interfaces. More...
#include <interface/message_queue.h>
Classes | |
| class | MessageIterator |
| Message iterator. More... | |
| struct | msg_list_t |
| Message list, internal only. | |
Public Member Functions | |
| MessageQueue () | |
| Constructor. | |
| virtual | ~MessageQueue () |
| Destructor. | |
| void | append (Message *msg) |
| Append message to queue. | |
| void | remove (const Message *msg) |
| Remove message from queue. | |
| void | remove (const unsigned int msg_id) |
| Remove message from queue by message id. | |
| void | insert_after (const MessageIterator &it, Message *msg) |
| Enqueue message after given iterator. | |
| unsigned int | size () const |
| Get number of messages in queue. | |
| void | flush () |
| Delete all messages from queue. | |
| bool | empty () const |
| Check if message queue is empty. | |
| void | lock () |
| Lock message queue. | |
| bool | try_lock () |
| Try to lock message queue. | |
| void | unlock () |
| Unlock message queue. | |
| Message * | first () |
| Get first message from queue. | |
| void | pop () |
| Erase first message from queue. | |
| MessageIterator | begin () |
| Get iterator to first element in message queue. | |
| MessageIterator | end () |
| Get iterator to element beyond end of message queue list. | |
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
| fawkes::MessageQueue::MessageQueue | ( | ) |
| fawkes::MessageQueue::~MessageQueue | ( | ) | [virtual] |
Member Function Documentation
| void fawkes::MessageQueue::append | ( | Message * | msg | ) |
Append message to queue.
- Parameters:
-
msg Message to append
- Exceptions:
-
MessageAlreadyQueuedException thrown 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::Mutex::lock(), fawkes::Message::mark_enqueued(), and fawkes::Mutex::unlock().
| MessageQueue::MessageIterator fawkes::MessageQueue::begin | ( | ) |
Get iterator to first element in message queue.
- Returns:
- iterator to first element in message queue
- Exceptions:
-
NotLockedException thrown if message queue is not locked during this operation.
Definition at line 330 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.
- Returns:
- true if message queue is empty, false otherwise
Definition at line 253 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.
- Returns:
- iterator to element beyond end of message queue list
- Exceptions:
-
NotLockedException thrown if message queue is not locked during this operation.
Definition at line 345 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.
- Returns:
- first message from queue
Definition at line 302 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 81 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.
- Parameters:
-
it Iterator msg Message to enqueue
- Returns:
- message queue id of the appended message.
- Exceptions:
-
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 140 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 269 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 315 of file message_queue.cpp.
References fawkes::Mutex::lock(), and fawkes::Mutex::unlock().
Referenced by fawkes::Interface::msgq_pop().
| void fawkes::MessageQueue::remove | ( | const unsigned int | msg_id | ) |
Remove message from queue by message id.
- Parameters:
-
msg_id id of message to remove
Definition at line 190 of file message_queue.cpp.
References fawkes::Mutex::lock(), and fawkes::Mutex::unlock().
| void fawkes::MessageQueue::remove | ( | const Message * | msg | ) |
Remove message from queue.
- Parameters:
-
msg message to remove
Definition at line 168 of file message_queue.cpp.
References fawkes::Mutex::lock(), and fawkes::Mutex::unlock().
Referenced by fawkes::Interface::msgq_remove().
| 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.
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.
- Returns:
- true, if the lock has been aquired, false otherwise.
Definition at line 283 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 292 of file message_queue.cpp.
References fawkes::Mutex::unlock().
Referenced by fawkes::Interface::msgq_unlock().
The documentation for this class was generated from the following files:
- src/libs/interface/message_queue.h
- src/libs/interface/message_queue.cpp

