3#include <container/seadTList.h>
4#include <telkin/Print.h>
25 return mCallback(event);
35 sead::TListNode<Listener*> mNode;
42 mListeners.pushBack(&listener.getNode());
43 mListeners.sort(&compare);
46 void fire(T& event)
const {
47 for (
const Listener* listener : mListeners) {
48 listener->invoke(event);
50 if (event.isConsumed()) [[unlikely]]
57 if ((*a)->getPriority() < (*b)->getPriority())
60 if ((*b)->getPriority() < (*a)->getPriority())
67 sead::TList<Listener*> mListeners;
Definition EventDelegator.h:14
Listener(Callback callback, s32 priority)
Definition EventDelegator.h:17
sead::TListNode< Listener * > & getNode()
Definition EventDelegator.h:29
s32 getPriority() const
Definition EventDelegator.h:32
void invoke(T &event) const
Definition EventDelegator.h:24
Definition EventDelegator.h:9
void fire(T &event) const
Definition EventDelegator.h:46
void connect(Listener &listener)
Definition EventDelegator.h:41
void(*)(T &event) Callback
Definition EventDelegator.h:11
Definition ActorDonutBlock.h:5