EventManager Class Reference [Message System]

#include <eventManager.h>

Inheritance diagram for EventManager:

Inheritance graph
[legend]
List of all members.

Detailed Description

The EventManager class is a wrapper for the standard messaging system.

It provides functionality for management of event queues, events, and subscriptions.

Creating an EventManager is as simple as calling new EventManager and specifying a queue name.

Example Usage:

 // Create the EventManager.
 $MyEventManager = new EventManager() { queue = "MyEventManager"; };
 
 // Create an event.
 $MyEventManager.registerEvent( "SomeCoolEvent" );
 
 // Create a listener and subscribe.
 $MyListener = new ScriptMsgListener() { class = MyListener; };
 $MyEventManager.subscribe( $MyListener, "SomeCoolEvent" );
 
 function MyListener::onSomeCoolEvent( %this, %data )
 {
    echo( "onSomeCoolEvent Triggered" );
 }
 
 // Trigger the event.
 $MyEventManager.postEvent( "SomeCoolEvent", "Data" );


Properties

void setMessageQueue (const char *queue)
static bool setMessageQueue (void *obj, const char *data)
 Sets the message queue.

Public Member Functions

 DECLARE_CONOBJECT (EventManager)
 EventManager ()
virtual ~EventManager ()
Event Management
bool isRegisteredEvent (const char *eventName)
 Checks if an event is registered.
bool registerEvent (const char *eventName)
 Registers an event.
void unregisterEvent (const char *eventName)
 Removes an event.
void unregisterAllEvents ()
 Removes all events.
bool postEvent (const char *eventName, const char *data)
 Triggers an event.
bool subscribe (SimObject *callbackObj, const char *event, const char *callback=NULL)
 Adds a subscription to an event.
void remove (SimObject *cbObj, const char *event)
 Remove a subscriber from an event.
Debug Output
void dumpEvents ()
 Prints all registered events to the console.
void dumpSubscribers ()
 Prints all subscribers to the console.
void dumpSubscribers (const char *event)
 Prints subscribers to a specific event to the console.

Static Public Member Functions

static void initPersistFields ()
 Register dynamic fields in a subclass of ConsoleObject.
Event Manager Tracking
static void addEventManager (EventManager *em)
 Adds an EventManager.
static void removeEventManager (EventManager *em)
 Removes an EventManager.
static EventManagergetEventManager (const char *name)
 Retrieves an EventManager.
static void printEventManagers ()
 Prints all the EventManagers to the console.

Private Types

typedef SimObject Parent

Private Attributes

StringTableEntry mQueue
 The name of the message queue.
Vector< StringTableEntrymEvents
 Registered events.
EventManagerListener mListener
 The event listener. Listens for all events and dispatches them to the appropriate subscribers.

Static Private Attributes

static Vector< EventManager * > smEventManagers
 List of all EventManagers.


Member Typedef Documentation

typedef SimObject EventManager::Parent [private]

Reimplemented from SimObject.


Constructor & Destructor Documentation

EventManager::EventManager (  ) 

virtual EventManager::~EventManager (  )  [virtual]


Member Function Documentation

EventManager::DECLARE_CONOBJECT ( EventManager   ) 

static void EventManager::initPersistFields (  )  [static]

Register dynamic fields in a subclass of ConsoleObject.

See also:
addField(), addFieldV(), addDeprecatedField(), addGroup(), endGroup()

Reimplemented from SimObject.

static bool EventManager::setMessageQueue ( void obj,
const char *  data 
) [inline, static]

Sets the message queue.

void EventManager::setMessageQueue ( const char *  queue  ) 

bool EventManager::isRegisteredEvent ( const char *  eventName  ) 

Checks if an event is registered.

bool EventManager::registerEvent ( const char *  eventName  ) 

Registers an event.

void EventManager::unregisterEvent ( const char *  eventName  ) 

Removes an event.

void EventManager::unregisterAllEvents (  ) 

Removes all events.

bool EventManager::postEvent ( const char *  eventName,
const char *  data 
)

Triggers an event.

bool EventManager::subscribe ( SimObject callbackObj,
const char *  event,
const char *  callback = NULL 
)

Adds a subscription to an event.

void EventManager::remove ( SimObject cbObj,
const char *  event 
)

Remove a subscriber from an event.

void EventManager::dumpEvents (  ) 

Prints all registered events to the console.

void EventManager::dumpSubscribers (  ) 

Prints all subscribers to the console.

void EventManager::dumpSubscribers ( const char *  event  ) 

Prints subscribers to a specific event to the console.

static void EventManager::addEventManager ( EventManager em  )  [inline, static]

Adds an EventManager.

static void EventManager::removeEventManager ( EventManager em  )  [inline, static]

Removes an EventManager.

static EventManager* EventManager::getEventManager ( const char *  name  )  [inline, static]

Retrieves an EventManager.

static void EventManager::printEventManagers (  )  [inline, static]

Prints all the EventManagers to the console.


Member Data Documentation

The name of the message queue.

Registered events.

The event listener. Listens for all events and dispatches them to the appropriate subscribers.

List of all EventManagers.