#pragma once #include #include #include #include #include "profinet_submodule.hpp" class ProfinetModule { public: static std::shared_ptr Create(uint32_t module_id, std::string module_name) { return std::shared_ptr(new ProfinetModule(module_id, module_name)); } ProfinetModule(uint32_t module_id, std::string module_name); bool addSubmodule(std::shared_ptr& submodule_ptr); std::shared_ptr getSubmodulePtr(uint32_t submodule_id); public: const uint32_t m_id; /// module id const std::string m_name; /// module name private: /// Набор поддерживаемых подмодулей std::map> m_submodules; };