#include <yatengine.h>
Inheritance diagram for MessageDispatcher:
Public Member Functions | |
MessageDispatcher () | |
~MessageDispatcher () | |
bool | install (MessageHandler *handler) |
bool | uninstall (MessageHandler *handler) |
bool | dispatch (Message &msg) |
bool | enqueue (Message *msg) |
void | dequeue () |
bool | dequeueOne () |
void | warnTime (u_int64_t usec) |
void | clear () |
unsigned int | messageCount () |
unsigned int | handlerCount () |
void | setHook (MessagePostHook *hook, bool remove=false) |
The dispatcher class is a hub that holds a list of handlers to be called for the messages that pass trough the hub. It can also handle a queue of messages that are typically dispatched by a separate thread.
Creates a new message dispatcher.
~MessageDispatcher | ( | ) |
Destroys the dispatcher and the installed handlers.
bool install | ( | MessageHandler * | handler | ) |
Installs a handler in the dispatcher.
handler | A pointer to the handler to install |
bool uninstall | ( | MessageHandler * | handler | ) |
Uninstalls a handler from the dispatcher.
handler | A pointer to the handler to uninstall |
bool dispatch | ( | Message & | msg | ) |
Synchronously dispatch a message to the installed handlers
msg | The message to dispatch |
bool enqueue | ( | Message * | msg | ) |
Put a message in the waiting queue for asynchronous dispatching
msg | The message to enqueue, will be destroyed after dispatching |
void dequeue | ( | ) |
Dispatch all messages from the waiting queue
bool dequeueOne | ( | ) |
Dispatch one message from the waiting queue
void warnTime | ( | u_int64_t | usec | ) | [inline] |
Set a limit to generate warning when a message took too long to dispatch
usec | Warning time limit in microseconds, zero to disable |
void clear | ( | ) | [inline] |
Clear all the message handlers and post-dispatch hooks
unsigned int messageCount | ( | ) |
Get the number of messages waiting in the queue
unsigned int handlerCount | ( | ) |
Get the number of handlers in this dispatcher
void setHook | ( | MessagePostHook * | hook, | |
bool | remove = false | |||
) |
Install or remove a hook to catch messages after being dispatched
hook | Pointer to a post-dispatching message hook | |
remove | Set to True to remove the hook instead of adding |