Quantum.EventDispatcher implementation for Unity. More...
Protected Member Functions | |
override ListenerStatus | GetListenerStatus (object listener, uint flags) |
Returns ListenerStatus.Active if listener is not null , ListenerStatus.Dead otherwise. Override this method to provide custom listener status. | |
Protected Member Functions inherited from Quantum.DispatcherBase | |
DispatcherBase (Dictionary< Type, Int32 > typeToIndex) | |
Initializes the dispatcher with a mapping of types to ids. The ids are used to quickly find the correct event handler. More... | |
bool | InvokeMeta (int metaIndex, IDispatchable e) |
Invokes handlers for a specific dispatchable. More... | |
bool | InvokeMeta< TDispatchable > (TDispatchable e) |
Invokes handlers for a specific dispatchable. More... | |
DispatcherSubscription | SubscribeInternal< TDispatchable > (object listener, DispatchableHandler< TDispatchable > handler, DispatchableFilter filter, uint flags) |
Creates a subscription. Subscriptions can be cancelled manually by calling UnsubscribeHandler<TDispatchable>(DispatchableHandler<TDispatchable>). More... | |
IDisposable | SubscribeManualInternal< TDispatchable > (object listener, DispatchableHandler< TDispatchable > handler, DispatchableFilter filter, bool once) |
Creates a subscription that is active until the caller disposes the result. More... | |
bool | UnsubscribeInternal< TDispatchable > (object listener, DispatchableHandler< TDispatchable > handler) |
Unsubscribes a listener from a handler. More... | |
Additional Inherited Members | |
Public Types inherited from Quantum.DispatcherBase | |
enum | ListenerStatus |
Status of a listener. Used to determine if a listener is still alive. More... | |
Public Member Functions inherited from Quantum.EventDispatcher | |
EventDispatcher () | |
Creates the event dispatcher and initializes the event type mapping. More... | |
unsafe bool | Publish (EventBase e) |
Publish an event. More... | |
Public Member Functions inherited from Quantum.DispatcherBase | |
void | Clear () |
Removes all subscriptions. More... | |
int | GetIndex< TDispatchable > () |
Returns the index of a specific dispatchable type. Throws in case the type is not registered. More... | |
void | RemoveDeadListeners () |
Removes every subscription for which GetListenerStatus returns ListenerStatus.Dead More... | |
DispatcherSubscription | Subscribe< TDispatchable > (object listener, DispatchableHandler< TDispatchable > handler, bool once=false, uint flags=0, DispatchableFilter filter=null) |
Creates a subscription. Subscriptions can be cancelled manually by calling UnsubscribeHandler<TDispatchable>(DispatchableHandler<TDispatchable>), but as long as the derived class overrides GetListenerStatus(object, uint) and calls DispatcherBase.RemoveDeadListeners() periodically, the dispatcher will be free of memory leaks. More... | |
IDisposable | SubscribeManual< TDispatchable > (DispatchableHandler< TDispatchable > handler, bool once=false, DispatchableFilter filter=null) |
Creates a subscription that is active until the caller disposes the result. More... | |
IDisposable | SubscribeManual< TDispatchable > (object listener, DispatchableHandler< TDispatchable > handler, bool once=false, DispatchableFilter filter=null) |
Creates a subscription that is active until the caller disposes the result or calls Unsubscribe. More... | |
bool | Unsubscribe (DispatcherSubscription subscription) |
Cancel a specific subscription. More... | |
bool | UnsubscribeHandler< TDispatchable > (DispatchableHandler< TDispatchable > handler) |
Cancel every subscription using a handler. More... | |
bool | UnsubscribeListener (object listener) |
Cancel every subscription for a listener. More... | |
bool | UnsubscribeListener< TDispatchable > (object listener) |
Cancel every specific subscription type for a listener. More... | |
Properties inherited from Quantum.DispatcherBase | |
bool | IsEmpty [get] |
Returns true if there are no active subscriptions. More... | |
DispatcherBase | Next [get, set] |
A reference to the next dispatcher in the chain. If set, the dispatcher will forward events to the next dispatcher after. More... | |
Quantum.EventDispatcher implementation for Unity.