csEventTree Class Reference
This class is used to represent the event namespace (tree). More...
#include <csutil/cssubscription.h>
Inheritance diagram for csEventTree:
Public Member Functions | |
void | Dispatch (iEvent &e) |
Send the provided event to all subscribers, using the normal return and Broadcast rules. | |
csEventTree * | FindNode (csEventID name, csEventQueue *q) |
Find a node with a given name in the event tree owned by q . | |
SubscriberIterator * | GetIterator () |
Return a csEventTree::SubscriberIterator for all subscribers to this event name (and to its parents). | |
void | Notify () |
Send the provided event to all subscribers, regardless of their return values. | |
bool | Subscribe (csHandlerID, csEventID, csEventQueue *q) |
Subscribe a given handler to a given event name subtree via a given event queue. | |
void | Unsubscribe (csHandlerID, csEventID, csEventQueue *q) |
Unubscribe a given handler to a given event name subtree via a given event queue. | |
Static Public Member Functions | |
static csEventTree * | CreateRootNode (csRef< iEventHandlerRegistry > ®1, csRef< iEventNameRegistry > ®2, csEventQueue *q) |
static void | DeleteRootNode (csEventTree *node) |
Friends | |
class | csEventQueueTest |
class | SubscriberIterator |
Classes | |
class | SubscriberIterator |
The SubscriberIterator is a wrapper for the messy internals of figuring out which event handler to call next. More... |
Detailed Description
This class is used to represent the event namespace (tree).Each node represents an event name (e.g., "crystalspace.input.mouse") and contains two data structures: a partial order graph representing subscribers to this event (including those who subscribed to parent event names) along with their ordering constraints, and a queue of subscribers representing a valid total order of that graph (used to speed up the common case).
Definition at line 41 of file cssubscription.h.
Member Function Documentation
void csEventTree::Dispatch | ( | iEvent & | e | ) |
Send the provided event to all subscribers, using the normal return and Broadcast rules.
csEventTree* csEventTree::FindNode | ( | csEventID | name, | |
csEventQueue * | q | |||
) |
Find a node with a given name in the event tree owned by q .
If no such node yet exists, create it (along with any necessary parent nodes, including the name root).
SubscriberIterator* csEventTree::GetIterator | ( | ) |
Return a csEventTree::SubscriberIterator for all subscribers to this event name (and to its parents).
void csEventTree::Notify | ( | ) |
Send the provided event to all subscribers, regardless of their return values.
bool csEventTree::Subscribe | ( | csHandlerID | , | |
csEventID | , | |||
csEventQueue * | q | |||
) |
Subscribe a given handler to a given event name subtree via a given event queue.
This is wrapped by csEventQueue::Subscribe which may be easier to use in some situations.
- See also:
- csEventQueue::Subscribe
void csEventTree::Unsubscribe | ( | csHandlerID | , | |
csEventID | , | |||
csEventQueue * | q | |||
) |
Unubscribe a given handler to a given event name subtree via a given event queue.
This is wrapped by csEventQueue::Unsubscribe which may be easier to use in some situations. Note that unsubscribing is reentrant (an event handler can unsubscribe itself) but NOT thread-safe (only event handlers in the same thread as the event queue can unsubscribe).
- See also:
- csEventQueue::Unsubscribe
The documentation for this class was generated from the following file:
- csutil/cssubscription.h
Generated for Crystal Space by doxygen 1.4.7