22 #ifndef _CONFIGURATION_CONFIGMANAGER_H
23 #define _CONFIGURATION_CONFIGMANAGER_H
29 #include <boost/program_options.hpp>
32 namespace Configuration {
107 template <
typename T>
130 template <
typename T1,
typename T2>
185 template <
typename T>
std::map< std::type_index, std::set< std::type_index > > m_dependency_map
static ConfigManager & getInstance(long id)
Returns a reference to the ConfigManager with the given ID.
void registerDependency()
Registers a dependency between two configurations.
void registerConfiguration()
Registers a Configuration to the manager.
virtual ~ConfigManager()=default
Destructor.
Manages a set of configuration classes.
boost::program_options::options_description closeRegistration()
Terminates the manager registration phase.
std::unique_ptr< std::type_index > m_root_config
T & getConfiguration()
Returns a reference to the requested configuration.
std::map< std::type_index, std::unique_ptr< Configuration > > m_config_dictionary
void initialize(const std::map< std::string, boost::program_options::variable_value > &user_values)
Initialize the manager.