Class for object-oriented handling of user-defined events. More...
Public Types | |
typedef std::tr1::function < void(const Event &) > | Listener |
Function type of listeners associated with Event. | |
Public Member Functions | |
EventSystem () | |
Default constructor. | |
void | TriggerEvent (const Event &event) |
Fires an event. | |
Connection | Connect (const EventIdentifier &trigger, const Listener &listener) |
Connects an event to the specified listener. | |
void | ClearConnections (EventIdentifier identifier) |
Disconnects listeners associated with a given event type. | |
void | ClearAllConnections () |
Disconnects all listeners. |
Class for object-oriented handling of user-defined events.
Event | The event type. For example, this can be a class or enum. |
EventIdentifier | The type that distinguishes different events. This isn't necessarily the event type itself. Consider SFML: The event type would be sf::Event, but the identifier is sf::Event::EventType. When you use custom events where EventIdentifier and Event are distinct types, you have to provide a global function EventIdentifier ExtractEventIdentifier(const Event&) in the namespace of the Event type definition. Besides, the event system requires less-than operator < for EventIdentifier (enums can use the implicit conversion to int). |
thor::EventSystem< Event, EventIdentifier >::EventSystem | ( | ) |
Default constructor.
Sets up an EventSystem where Event and EventIdentifier are the same types.
void thor::EventSystem< Event, EventIdentifier >::ClearAllConnections | ( | ) |
Disconnects all listeners.
Removes all event-listener connections, independently of the event type.
void thor::EventSystem< Event, EventIdentifier >::ClearConnections | ( | EventIdentifier | identifier | ) |
Disconnects listeners associated with a given event type.
identifier | The event type identifier of which you want to remove all connected listeners. |
Connection thor::EventSystem< Event, EventIdentifier >::Connect | ( | const EventIdentifier & | trigger, |
const Listener & | listener | ||
) |
Connects an event to the specified listener.
Duplicates are allowed (thus, the listener is invoked multiple times).
trigger | The event you want to associate with a listener function. |
listener | The function that is invoked when a trigger event is fired. |
void thor::EventSystem< Event, EventIdentifier >::TriggerEvent | ( | const Event & | event | ) |
Fires an event.
Calls all listener functions that are currently associated with event.