MessageDispatcher Class Reference

A message dispatching hub. More...

#include <yatengine.h>

Inheritance diagram for MessageDispatcher:

GenObject 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:
Generated on Mon Oct 22 07:43:09 2007 for Yate by  doxygen 1.5.2