Struct EventSystem

Inheritance Relationships

Base Type

Struct Documentation

struct EventSystem : public CE::State::Singleton<EventSystem>

Global access to the default persistent event bus.

Independent owned buses may isolate a subsystem or application lifecycle; all buses use immediate producer-thread delivery unless explicitly adapted.

Public Types

using Callback = ::CE::Events::EventBus::Callback
using Registration = ::CE::Events::EventBus::Registration
using Delivery = ::CE::Events::EventBus::Delivery
using ErrorHandler = ::CE::Events::EventBus::ErrorHandler

Public Functions

EventSystem() = default
inline ::CE::Events::EventBus &bus()

Declaration: [[nodiscard]]

Registration register_listener(const std::string &event, Callback callback, Delivery delivery = Delivery{}, ErrorHandler errors = ErrorHandler{})
void dispatch(const std::string &event, const std::any &payload)
template<::CE::Events::EventPayload Payload>
inline Registration register_listener(const ::CE::Events::EventChannel<Payload> &event, typename ::CE::Events::EventChannel<Payload>::Callback callback, Delivery delivery = Delivery{}, ErrorHandler errors = ErrorHandler{})
template<::CE::Events::EventPayload Payload, typename Value>
inline void dispatch(const ::CE::Events::EventChannel<Payload> &event, Value &&payload)

Requires: std::same_as<std::remove_cvref_t<Value>, Payload> && std::is_constructible_v<Payload, Value&&>

inline bool unregister_listener(const Registration &registration)
inline void wait_for_listener(const Registration &registration) const
inline bool unregister_and_wait(const Registration &registration)