From: Arnaud Giersch Date: Tue, 17 Apr 2018 21:29:28 +0000 (+0200) Subject: Separate real name from alias names list. X-Git-Tag: v3.20~400 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/3836e4e27a13a0d389812e41a4d5d651ff0c158b?hp=8e8adb4298d76faafc4947256f0719c8aedc8508 Separate real name from alias names list. --- diff --git a/include/xbt/config.hpp b/include/xbt/config.hpp index 701b5b39ca..d25e1c41ce 100644 --- a/include/xbt/config.hpp +++ b/include/xbt/config.hpp @@ -76,15 +76,7 @@ extern template XBT_PUBLIC void declareFlag(const char* name, const char* descri // ***** alias ***** -XBT_PUBLIC void alias(const char* realname, const char* aliasname); - -inline -void alias(std::initializer_list names) -{ - auto i = names.begin(); - for (++i; i != names.end(); ++i) - alias(*names.begin(), *i); -} +XBT_PUBLIC void alias(const char* realname, std::initializer_list aliases); /** Bind a variable to configuration flag * @@ -100,11 +92,11 @@ void bindFlag(T& value, const char* name, const char* description) }); } -template -void bindFlag(T& value, std::initializer_list names, const char* description) +template +void bindFlag(T& value, const char* name, std::initializer_list aliases, const char* description) { - bindFlag(value, *names.begin(), description); - alias(names); + bindFlag(value, name, description); + alias(name, std::move(aliases)); } /** Bind a variable to configuration flag @@ -130,10 +122,10 @@ bindFlag(T& value, const char* name, const char* description, F callback) template typename std::enable_if()(std::declval()))>::value, void>::type -bindFlag(T& value, std::initializer_list names, const char* description, F callback) +bindFlag(T& value, const char* name, std::initializer_list aliases, const char* description, F callback) { - bindFlag(value, *names.begin(), description, std::move(callback)); - alias(names); + bindFlag(value, name, description, std::move(callback)); + alias(name, std::move(aliases)); } template @@ -209,10 +201,10 @@ public: simgrid::config::bindFlag(value_, name, desc); } - /** Constructor taking an array of aliases as name */ - Flag(std::initializer_list names, const char* desc, T value) : value_(value) + /** Constructor taking also an array of aliases for name */ + Flag(const char* name, std::initializer_list aliases, const char* desc, T value) : value_(value) { - simgrid::config::bindFlag(value_, names, desc); + simgrid::config::bindFlag(value_, name, std::move(aliases), desc); } /* A constructor accepting a callback that will be passed the parameter. diff --git a/src/simgrid/sg_config.cpp b/src/simgrid/sg_config.cpp index 0c7c8a88f9..256d5a27bd 100644 --- a/src/simgrid/sg_config.cpp +++ b/src/simgrid/sg_config.cpp @@ -318,17 +318,17 @@ void sg_config_init(int *argc, char **argv) /* The parameters of network models */ sg_latency_factor = 13.01; // comes from the default LV08 network model - simgrid::config::bindFlag(sg_latency_factor, {"network/latency-factor", "network/latency_factor"}, + simgrid::config::bindFlag(sg_latency_factor, "network/latency-factor", {"network/latency_factor"}, "Correction factor to apply to the provided latency (default value set by network model)"); sg_bandwidth_factor = 0.97; // comes from the default LV08 network model simgrid::config::bindFlag( - sg_bandwidth_factor, {"network/bandwidth-factor", "network/bandwidth_factor"}, + sg_bandwidth_factor, "network/bandwidth-factor", {"network/bandwidth_factor"}, "Correction factor to apply to the provided bandwidth (default value set by network model)"); sg_weight_S_parameter = 20537; // comes from the default LV08 network model simgrid::config::bindFlag( - sg_weight_S_parameter, {"network/weight-S", "network/weight_S"}, + sg_weight_S_parameter, "network/weight-S", {"network/weight_S"}, "Correction factor to apply to the weight of competing streams (default value set by network model)"); /* Inclusion path */ diff --git a/src/surf/network_interface.cpp b/src/surf/network_interface.cpp index 147747ac0e..856c3f9f72 100644 --- a/src/surf/network_interface.cpp +++ b/src/surf/network_interface.cpp @@ -70,7 +70,7 @@ namespace resource { /** @brief Command-line option 'network/TCP-gamma' -- see \ref options_model_network_gamma */ simgrid::config::Flag NetworkModel::cfg_tcp_gamma( - {"network/TCP-gamma", "network/TCP_gamma"}, + "network/TCP-gamma", {"network/TCP_gamma"}, "Size of the biggest TCP window (cat /proc/sys/net/ipv4/tcp_[rw]mem for recv/send window; " "Use the last given value, which is the max window size)", 4194304.0); diff --git a/src/xbt/config.cpp b/src/xbt/config.cpp index 34503ee9ed..0a5f2f3568 100644 --- a/src/xbt/config.cpp +++ b/src/xbt/config.cpp @@ -392,9 +392,10 @@ template XBT_PUBLIC std::string const& getConfig(const char* name); // ***** alias ***** -void alias(const char* realname, const char* aliasname) +void alias(const char* realname, std::initializer_list aliases) { - simgrid_config->alias(realname, aliasname); + for (auto const& aliasname : aliases) + simgrid_config->alias(realname, aliasname); } // ***** declareFlag *****