Definition event_bus.h:48
size_t queueTail_
Definition event_bus.h:97
size_t queueHead_
Definition event_bus.h:96
static EventBus & instance()
Definition event_bus.cpp:10
size_t queueCount_
Definition event_bus.h:98
SubscriptionId nextSubId_
Definition event_bus.h:93
bool post(const Event &event)
Definition event_bus.cpp:91
size_t dispatchQueue()
Definition event_bus.cpp:101
static constexpr size_t MAX_SUBSCRIBERS
Definition event_bus.h:51
void publish(const Event &event)
Definition event_bus.cpp:76
bool unsubscribe(SubscriptionId id)
Definition event_bus.cpp:63
EventBus()
Definition event_bus.cpp:6
static constexpr size_t MAX_QUEUE
Definition event_bus.h:53
Event queue_[MAX_QUEUE]
Definition event_bus.h:95
Subscription subscribers_[MAX_SUBSCRIBERS]
Definition event_bus.h:92
SubscriptionId subscribe(EventType type, EventCallback callback, void *userData=nullptr)
Definition event_bus.cpp:27
void clear()
Definition event_bus.cpp:15
Definition event_bus.h:13
virtual ~IEventListener()=default
virtual void onEvent(const Event &event)=0
void(*)(const Event &event, void *userData) EventCallback
Definition event_bus.h:11
EventType
Definition event.h:14
uint16_t SubscriptionId
Definition event_bus.h:10
events::EventBus & events()
Definition system.h:45
Definition application.h:10
Definition event_bus.h:25
IEventListener * listener
Definition event_bus.h:33
bool active
Definition event_bus.h:37
EventCallback callback
Definition event_bus.h:31
EventType type
Definition event_bus.h:29
void * userData
Definition event_bus.h:35