class
Athena::EventDispatcher::EventDispatcher
- Athena::EventDispatcher::EventDispatcher
- Reference
- Object
Overview
Default implementation of AED::EventDispatcherInterface.
Included Modules
Direct Known Subclasses
Defined in:
event_dispatcher.crInstance Method Summary
-
#dispatch(event : ACTR::EventDispatcher::Event) : ACTR::EventDispatcher::Event
Dispatches the provided event to all listeners listening on that event.
-
#has_listeners?(event_class : AED::Event.class) : Bool
Returns
trueif this dispatcher has any listeners on the provided event_class. -
#has_listeners? : Bool
Returns
trueif there are any listeners on any event. -
#listener(callable : AED::Callable) : AED::Callable
Registers the provided callable listener to this dispatcher.
-
#listener(listener : T) : Nil forall T
Registers the provided listener instance to this dispatcher.
-
#listener(callable : AED::Callable, *, priority : Int32) : AED::Callable
Registers the provided callable listener to this dispatcher, overriding its priority with that of the provided priority.
-
#listener(event_class : E.class, *, priority : Int32 = 0, name : String | Nil = nil, &block : E, AED::EventDispatcherInterface -> Nil) : AED::Callable forall E
Registers the block as an
AED::Callableon the provided event_class, optionally with the provided priority and/or name. -
#listeners(for event_class : AED::Event.class) : Array(AED::Callable)
Returns an
Array(AED::Callable)for all listeners on the provided event_class. -
#listeners : Hash(AED::Event.class, Array(AED::Callable))
Returns a hash of all registered listeners as a
Hash(AED::Event.class, Array(AED::Callable)). -
#remove_listener(callable : AED::Callable) : Nil
Deregisters the provided callable from this dispatcher.
-
#remove_listener(listener : T) : Nil forall T
Deregisters listeners based on the provided listener from this dispatcher.
Instance methods inherited from module Athena::EventDispatcher::EventDispatcherInterface
has_listeners?(event_class : AED::Event.class) : Boolhas_listeners? : Bool has_listeners?, listener(callable : AED::Callable) : AED::Callable
listener(listener : T) : Nil forall T
listener(callable : AED::Callable, *, priority : Int32) : AED::Callable
listener(event_class : E.class, *, priority : Int32 = 0, name : String | Nil = nil, &block : E, AED::EventDispatcherInterface -> Nil) : AED::Callable forall E listener, listeners(for event_class : AED::Event.class) : Array(AED::Callable)
listeners : Hash(AED::Event.class, Array(AED::Callable)) listeners, remove_listener(callable : AED::Callable) : Nil
remove_listener(listener : T) : Nil forall T remove_listener
Instance Method Detail
Dispatches the provided event to all listeners listening on that event.
Returns true if this dispatcher has any listeners on the provided event_class.
Registers the provided callable listener to this dispatcher.
Registers the provided listener instance to this dispatcher.
T is any type that has methods annotated with AEDA::AsEventListener.
Registers the provided callable listener to this dispatcher, overriding its priority with that of the provided priority.
Registers the block as an AED::Callable on the provided event_class, optionally with the provided priority and/or name.
Returns an Array(AED::Callable) for all listeners on the provided event_class.
Returns a hash of all registered listeners as a Hash(AED::Event.class, Array(AED::Callable)).
Deregisters the provided callable from this dispatcher.
TIP: The callable may be one retrieved via either #listeners method.
Deregisters listeners based on the provided listener from this dispatcher.
T is any type that has methods annotated with AEDA::AsEventListener.