#ifndef __MCS_ENGINE_HPP__ #define __MCS_ENGINE_HPP__ #include #include #include #include #include #include /// Ядро движка Magic Srolls class MscEngine : public IMscEngineModuleAPI { private: /// @brief Загруженные модули std::vector> _modules; /// @brief Общая событийная шина движка MscEventBus _bus; /// @brief Флаг работы движка bool _isRunning = false; /// @brief Время последнего тика clock::time_point _lastUpdate; public: /// @brief Номер ревизии static uint16_t REV; MscEngine(std::vector> modules); ~MscEngine() = default; /// @brief Запустить движок void start(); /// @brief Остановить движок void stop(); MscEventBus &getBus() override; std::unordered_map getLoadedModules() const override; std::shared_ptr &getModule(const std::string &name) override; std::unique_ptr createDBProvider() override; std::unique_ptr createDBProvider(const std::string &filepath) override; void requestStop() override; }; #endif // __MCS_ENGINE_HPP__