X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/2738598c9f876339ee6f8b3fc217984b7b837539..7973bd18cc5c47be83e6032a4018838fd99ffc65:/src/xbt/config.cpp diff --git a/src/xbt/config.cpp b/src/xbt/config.cpp index 90c3c63ea3..c50e8057a1 100644 --- a/src/xbt/config.cpp +++ b/src/xbt/config.cpp @@ -253,9 +253,9 @@ template const char* TypedConfigurationElement::get_type_name() // class Config { private: // name -> ConfigElement: - std::map> options; + std::map> options; // alias -> ConfigElement from options: - std::map aliases; + std::map aliases; bool warn_for_aliases = true; public: @@ -268,15 +268,14 @@ public: ConfigurationElement& operator[](const std::string& name); void alias(const std::string& realname, const std::string& aliasname); - template - simgrid::config::TypedConfigurationElement* register_option(const std::string& name, A&&... a) + template TypedConfigurationElement* register_option(const std::string& name, A&&... a) { xbt_assert(options.find(name) == options.end(), "Refusing to register the config element '%s' twice.", name.c_str()); TypedConfigurationElement* variable = new TypedConfigurationElement(name, std::forward(a)...); XBT_DEBUG("Register cfg elm %s (%s) of type %s @%p in set %p)", name.c_str(), variable->get_description().c_str(), variable->get_type_name(), variable, this); - options.emplace(name, variable); + options[name].reset(variable); variable->update(); return variable; } @@ -308,7 +307,7 @@ inline ConfigurationElement* Config::get_dict_element(const std::string& name) XBT_INFO("Option %s has been renamed to %s. Consider switching.", name.c_str(), res->get_key().c_str()); return res; } else { - THROWF(not_found_error, 0, "Bad config key: %s", name.c_str()); + throw std::out_of_range("Bad config key: " + name); } } } @@ -496,6 +495,11 @@ void help() * @param value the value of the variable */ void xbt_cfg_set_int(const char *key, int value) +{ + sg_cfg_set_int(key, value); +} + +void sg_cfg_set_int(const char* key, int value) { (*simgrid_config)[key].set_value(value); } @@ -506,6 +510,11 @@ void xbt_cfg_set_int(const char *key, int value) * @param value the double to set */ void xbt_cfg_set_double(const char *key, double value) +{ + sg_cfg_set_double(key, value); +} + +void sg_cfg_set_double(const char* key, double value) { (*simgrid_config)[key].set_value(value); } @@ -517,6 +526,11 @@ void xbt_cfg_set_double(const char *key, double value) * */ void xbt_cfg_set_string(const char* key, const char* value) +{ + sg_cfg_set_string(key, value); +} + +void sg_cfg_set_string(const char* key, const char* value) { (*simgrid_config)[key].set_value(value); } @@ -527,6 +541,11 @@ void xbt_cfg_set_string(const char* key, const char* value) * @param value the value of the variable */ void xbt_cfg_set_boolean(const char *key, const char *value) +{ + sg_cfg_set_boolean(key, value); +} + +void sg_cfg_set_boolean(const char* key, const char* value) { (*simgrid_config)[key].set_value(simgrid::config::parse_bool(value)); } @@ -539,6 +558,11 @@ void xbt_cfg_set_boolean(const char *key, const char *value) * Returns the first value from the config set under the given name. */ int xbt_cfg_get_int(const char *key) +{ + return sg_cfg_get_int(key); +} + +int sg_cfg_get_int(const char* key) { return (*simgrid_config)[key].get_value(); } @@ -550,6 +574,11 @@ int xbt_cfg_get_int(const char *key) * Returns the first value from the config set under the given name. */ double xbt_cfg_get_double(const char *key) +{ + return sg_cfg_get_double(key); +} + +double sg_cfg_get_double(const char* key) { return (*simgrid_config)[key].get_value(); } @@ -562,6 +591,11 @@ double xbt_cfg_get_double(const char *key) * If there is more than one value, it will issue a warning. */ int xbt_cfg_get_boolean(const char *key) +{ + return sg_cfg_get_boolean(key); +} + +int sg_cfg_get_boolean(const char* key) { return (*simgrid_config)[key].get_value() ? 1 : 0; }