Fawkes API
Fawkes Development Version
|
24 #ifndef _INTERFACE_MESSAGE_QUEUE_H_
25 #define _INTERFACE_MESSAGE_QUEUE_H_
27 #include <core/exception.h>
28 #include <core/exceptions/software.h>
35 class MessageAlreadyQueuedException :
public Exception
78 unsigned int id()
const;
80 template <
class MessageType>
83 template <
class MessageType>
84 MessageType *
get()
const;
92 void remove(
const unsigned int msg_id);
95 unsigned int size()
const;
111 void remove(msg_list_t *l, msg_list_t *p);
123 template <
class MessageType>
127 MessageType *msg =
dynamic_cast<MessageType *
>(cur->msg);
137 template <
class MessageType>
141 MessageType *msg =
dynamic_cast<MessageType *
>(cur->msg);
bool empty() const
Check if message queue is empty.
MessageIterator & operator+=(unsigned int i)
Advance by a certain amount.
MessageIterator()
Constructor.
bool try_lock()
Try to lock message queue.
void flush()
Delete all messages from queue.
MessageAlreadyQueuedException()
Constructor.
void lock()
Lock message queue.
void pop()
Erase first message from queue.
void unlock()
Unlock message queue.
unsigned int id() const
Get ID of current element or 0 if element is end.
unsigned int size() const
Get number of messages in queue.
bool is() const
Check if message is of given type.
Message * operator->() const
Act on current message.
MessageIterator end()
Get iterator to element beyond end of message queue list.
void append(Message *msg)
Append message to queue.
MessageIterator & operator++()
Increment iterator.
void remove(const Message *msg)
Remove message from queue.
Message * first()
Get first message from queue.
MessageType * get() const
Get current message of given type.
void insert_after(const MessageIterator &it, Message *msg)
Enqueue message after given iterator.
MessageIterator & operator+(unsigned int i)
Advance by a certain amount.
virtual ~MessageQueue()
Destructor.
bool operator!=(const MessageIterator &c) const
Check inequality of two iterators.
MessageQueue()
Constructor.
MessageIterator & operator=(const MessageIterator &c)
Assign iterator.
MessageIterator begin()
Get iterator to first element in message queue.
bool operator==(const MessageIterator &c) const
Check equality of two iterators.
Message * operator*() const
Get memory pointer of chunk.