#ifndef __MCS_ENGINE_MODULE_HPP__ #define __MCS_ENGINE_MODULE_HPP__ #include "engine/utils/rev_range.hpp" #include "engine/core/engine_module_api.hpp" #include #include #include /// Engine module base class class MscEngineModule { public: virtual ~MscEngineModule() = default; /// Get module name virtual std::string getName() const = 0; /// Get module revision virtual uint16_t getRev() const = 0; /// Module dependency list virtual const std::unordered_map & getDependencies() const = 0; /// Module initialization phase virtual void onInitialize(IMscEngineModuleAPI &engine) = 0; }; #endif // __MCS_ENGINE_MODULE_HPP__