# MessageDispatcher Class Reference

A message dispatching hub. More...

`#include <yatengine.h>`

Inheritance diagram for MessageDispatcher:

List of all members.

## 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)

## Detailed Description

A message dispatching hub.

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.

## Constructor & Destructor Documentation

MessageDispatcher | ( |  | ) |

Creates a new message dispatcher.

~MessageDispatcher | ( |  | ) |

Destroys the dispatcher and the installed handlers.

## Member Function Documentation

bool install | ( | MessageHandler * | handler | ) |

Installs a handler in the dispatcher.

Parameters:

  | handler | A pointer to the handler to install

Returns:
  True on success, false on failure

bool uninstall | ( | MessageHandler * | handler | ) |

Uninstalls a handler from the dispatcher.

Parameters:

  | handler | A pointer to the handler to uninstall

Returns:
  True on success, false on failure

bool dispatch | ( | Message & | msg | ) |

Synchronously dispatch a message to the installed handlers

Parameters:

  | msg | The message to dispatch

Returns:
  True if one handler accepted it, false if all ignored

bool enqueue | ( | Message * | msg | ) |

Put a message in the waiting queue for asynchronous dispatching

Parameters:

  | msg | The message to enqueue, will be destroyed after dispatching

Returns:
  True if successfully queued, false otherwise

void dequeue | ( |  | ) |

Dispatch all messages from the waiting queue

bool dequeueOne | ( |  | ) |

Dispatch one message from the waiting queue

Returns:
  True if success, false if the queue is empty

void warnTime | ( | u_int64_t | usec | ) | `[inline]`

Set a limit to generate warning when a message took too long to dispatch

Parameters:

  | 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

Returns:
  Count of messages in the queue

unsigned int handlerCount | ( |  | ) |

Get the number of handlers in this dispatcher

Returns:
  Count of handlers

void setHook | ( | MessagePostHook * | hook,
|  | bool | remove = `false` |
| ) |  |  |

Install or remove a hook to catch messages after being dispatched

Parameters:

  | hook | Pointer to a post-dispatching message hook
  | remove | Set to True to remove the hook instead of adding

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

- yatengine.h