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 : AED::Event) : AED::Event
Dispatches the provided event to all listeners listening on that event.
-
#has_listeners?(event_class : AED::Event.class) : Bool
Returns
true
if this dispatcher has any listeners on the provided event_class. -
#has_listeners? : Bool
Returns
true
if 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::Callable
on 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
dispatch(event : AED::Event) : AED::Event
dispatch,
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. Listeners are executed in priority order, highest first.
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
.