#ifndef COMPONENT_MANAGER__COMPONENT_MANAGER_HPP_ #define COMPONENT_MANAGER__COMPONENT_MANAGER_HPP_ #include "component_manager/visibility_control.h" #include "config/options.hpp" #include #include #include #include #include namespace env_manager { namespace component_manager { /** * This class implements the system for managing and configuring loaded components. * * It is assumed that the loaded components are inherited from the classes * provided in the library for each node type. */ class ComponentManager { public: ComponentManager(std::weak_ptr executor); void register_components( const std::map &comps, const std::map &nodes, const std::string& ns); void remove_components_from_executor(); void remap_components_namespace(const std::string& ns); private: std::weak_ptr _executor; std::vector _loaders; std::map _node_wrappers; std::map _nodes; }; } // namespace env_manager } // namespace component_manager #endif // COMPONENT_MANAGER__COMPONENT_MANAGER_HPP_