EventManager.ixx File
High-level event manager dispatching events to listeners. More...
Included Headers
#include <functional>
#include <memory>
#include <utility>
#include <format>
#include <helios.util.log.Logger>
#include <helios.util.log.LogManager>
#include <helios.event.Dispatcher>
#include <helios.event.EventQueue>
#include <helios.event.Event>
Namespaces Index
| namespace | helios |
| namespace | event |
Classes Index
| class | EventManager |
|
An abstract EventManager managing the buffering and dispatching of events, acting as a central hub for event management. More... | |
Macro Definitions Index
| #define | HELIOS_LOG_SCOPE "helios::event::EventManager" |
Description
High-level event manager dispatching events to listeners.
Macro Definitions
HELIOS_LOG_SCOPE
|
Definition at line 21 of file EventManager.ixx.
21#define HELIOS_LOG_SCOPE "helios::event::EventManager"
File Listing
The file content with the documentation metadata removed is:
21#define HELIOS_LOG_SCOPE "helios::event::EventManager"
22export namespace helios::event {
30 enum PostPolicy {
56 class EventManager {
60 static inline const helios::util::log::Logger& logger_ = helios::util::log::LogManager::loggerForScope(HELIOS_LOG_SCOPE);
65 std::unique_ptr<EventQueue> eventQueue_;
70 std::unique_ptr<Dispatcher> dispatcher_;
72 EventManager() = default;
76 virtual ~EventManager() = default;
86 explicit EventManager(
88 std::unique_ptr<Dispatcher> dispatcher
90 eventQueue_(std::move(eventQueue)),
91 dispatcher_(std::move(dispatcher))
106 EventManager& post(std::unique_ptr<const Event> event) {
123 EventManager& post(std::unique_ptr<const Event> event, PostPolicy policy) {
144 virtual EventManager& post(
145 std::unique_ptr<const Event> event,
146 PostPolicy policy,
148 const std::unique_ptr<const Event>& event,
161 virtual EventManager& dispatchAll() = 0;
176 EventManager& subscribe(std::function<void(const EventType&)> callback) {
177 dispatcher_->subscribe(callback);
191 [[nodiscard]] Dispatcher& dispatcher() const noexcept {
192 return *dispatcher_;
Generated via doxygen2docusaurus 2.0.0 by Doxygen 1.15.0.