From ff0453e81dc377a8c73775d41487df7a4e6a786d Mon Sep 17 00:00:00 2001 From: Samsonium Date: Tue, 29 Sep 2026 13:10:54 +0300 Subject: [PATCH] feat: add event bus to engine public API --- include/engine/core/engine.hpp | 3 ++- include/engine/core/engine_module_api.hpp | 4 +++- src/engine/core/engine.cpp | 5 ++++- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/include/engine/core/engine.hpp b/include/engine/core/engine.hpp index 971d43c..d171899 100644 --- a/include/engine/core/engine.hpp +++ b/include/engine/core/engine.hpp @@ -13,6 +13,7 @@ class MscEngine : public IMscEngineModuleAPI private: /// Loaded modules list std::vector> _modules; + MscEventBus _bus; public: /// Actual version @@ -20,7 +21,7 @@ public: MscEngine(std::vector> modules); - UNIMPL getBus() const override; + MscEventBus &getBus() override; UNIMPL getLoadedModules() const override; }; diff --git a/include/engine/core/engine_module_api.hpp b/include/engine/core/engine_module_api.hpp index 10137b2..d75b8ee 100644 --- a/include/engine/core/engine_module_api.hpp +++ b/include/engine/core/engine_module_api.hpp @@ -1,6 +1,8 @@ #ifndef __MSC_ENGINE_MODULE_API_HPP__ #define __MSC_ENGINE_MODULE_API_HPP__ +#include + typedef void UNIMPL; class IMscEngineModuleAPI @@ -9,7 +11,7 @@ public: virtual ~IMscEngineModuleAPI() = default; /// Get access to engine event bus - virtual UNIMPL getBus() const = 0; + virtual MscEventBus &getBus() = 0; /// Get access to loaded module list virtual UNIMPL getLoadedModules() const = 0; diff --git a/src/engine/core/engine.cpp b/src/engine/core/engine.cpp index 76765b7..ca9b170 100644 --- a/src/engine/core/engine.cpp +++ b/src/engine/core/engine.cpp @@ -54,7 +54,10 @@ MscEngine::MscEngine(std::vector> modules) _modules = std::move(modules); } -UNIMPL MscEngine::getBus() const { throw std::runtime_error("Unimplemented"); } +MscEventBus &MscEngine::getBus() +{ + return _bus; +} UNIMPL MscEngine::getLoadedModules() const {