Photon Quantum 3.0.0

Public Member Functions | List of all members
Quantum.EventDispatcher Class Reference

Publish, subscribe pattern for Quantum events: EventBase. Quantum events are used to communicate view relevant game updates from the simulation to the view. More...

Inheritance diagram for Quantum.EventDispatcher:
Quantum.DispatcherBase Quantum.IEventDispatcher Quantum.QuantumUnityEventDispatcher

Public Member Functions

 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...
 

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...
 
- 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...
 
virtual 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. 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...
 
- 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...
 

Detailed Description

Publish, subscribe pattern for Quantum events: EventBase. Quantum events are used to communicate view relevant game updates from the simulation to the view.

Constructor & Destructor Documentation

◆ EventDispatcher()

Quantum.EventDispatcher.EventDispatcher ( )
inline

Creates the event dispatcher and initializes the event type mapping.

Member Function Documentation

◆ Publish()

unsafe bool Quantum.EventDispatcher.Publish ( EventBase  e)
inline

Publish an event.

Parameters
eEvent
Returns
True if the event was handled by any subscription

Implements Quantum.IEventDispatcher.