Generator class for a specific type of events. More...
#include <xmmEvents.hpp>
Public Types | |
typedef std::function< void(EventType &)> | EventCallBack |
Public Member Functions | |
EventGenerator () | |
Default constructor. More... | |
virtual | ~EventGenerator () |
Destructor. More... | |
template<typename U , typename args , class ListenerClass > | |
void | addListener (U *owner, void(ListenerClass::*listenerMethod)(args)) |
Adds a listener object to be notified when events are sent. More... | |
template<typename U , typename args , class ListenerClass > | |
void | removeListener (U *owner, void(ListenerClass::*listenerMethod)(args)) |
Removes a listener object. More... | |
void | removeListeners () |
Removes all listeners. More... | |
void | notifyListeners (EventType &e) const |
Propagates the event to all listeners. More... | |
Private Attributes | |
std::map< void *, EventCallBack > | callbacks_ |
Set of listener objects. More... | |
Generator class for a specific type of events.
EventType | Type of Events that can be sent |
typedef std::function<void(EventType&)> xmm::EventGenerator< EventType >::EventCallBack |
|
inline |
Default constructor.
|
inlinevirtual |
Destructor.
Also notifies all listeners that this generators is deleted
|
inline |
Adds a listener object to be notified when events are sent.
owner | Pointer to the listener object |
listenerMethod | Method to be called in the target class |
U | type of the target object |
args | callback arguments |
ListenerClass | Listener Class |
|
inline |
Propagates the event to all listeners.
e | event |
|
inline |
Removes a listener object.
owner | Pointer to the listener object |
listenerMethod | Method to be called in the target class |
U | type of the target object |
args | callback arguments |
ListenerClass | Listener Class |
|
inline |
Removes all listeners.
|
private |
Set of listener objects.