-/** @brief Set or add an peer value to \a name within \a cfg
- *
- * \arg cfg the config set
- * \arg name the name of the variable
- * \arg peer the peer
- * \arg port the port number
- *
- * \e peer values are composed of a string (peername) and an integer (port)
- */
-
-void
-xbt_cfg_set_peer(xbt_cfg_t cfg, const char *name, const char *peer,
- int port)
-{
- xbt_cfgelm_t variable;
- xbt_peer_t val = xbt_peer_new(peer, port);
-
- XBT_VERB("Configuration setting: %s=%s:%d", name, peer, port);
-
- variable = xbt_cfgelm_get(cfg, name, xbt_cfgelm_peer);
-
- if (variable->max == 1) {
- if (variable->cb_rm && !xbt_dynar_is_empty(variable->content))
- variable->cb_rm(name, 0);
-
- xbt_dynar_set(variable->content, 0, &val);
- } else {
- if (variable->max
- && xbt_dynar_length(variable->content) == variable->max)
- THROWF(mismatch_error, 0,
- "Cannot add value %s:%d to the config element %s since it's already full (size=%d)",
- peer, port, name, variable->max);
-
- xbt_dynar_push(variable->content, &val);
- }
-
- if (variable->cb_set)
- variable->cb_set(name, xbt_dynar_length(variable->content) - 1);
- variable->isdefault = 0;
-}
-
-/* ---- [ Removing ] ---- */
-
-/** @brief Remove the provided \e val integer value from a variable
- *
- * \arg cfg the config set
- * \arg name the name of the variable
- * \arg val the value to be removed
- */
-void xbt_cfg_rm_int(xbt_cfg_t cfg, const char *name, int val)
-{
-
- xbt_cfgelm_t variable;
- unsigned int cpt;
- int seen;
-
- variable = xbt_cfgelm_get(cfg, name, xbt_cfgelm_int);
-
- if (xbt_dynar_length(variable->content) == variable->min)
- THROWF(mismatch_error, 0,
- "Cannot remove value %d from the config element %s since it's already at its minimal size (=%d)",
- val, name, variable->min);
-
- xbt_dynar_foreach(variable->content, cpt, seen) {
- if (seen == val) {
- if (variable->cb_rm)
- variable->cb_rm(name, cpt);
- xbt_dynar_cursor_rm(variable->content, &cpt);
- return;
- }
- }
-
- THROWF(not_found_error, 0,
- "Can't remove the value %d of config element %s: value not found.",
- val, name);
-}
-
-/** @brief Remove the provided \e val double value from a variable
- *
- * \arg cfg the config set
- * \arg name the name of the variable
- * \arg val the value to be removed
- */
-
-void xbt_cfg_rm_double(xbt_cfg_t cfg, const char *name, double val)
-{
- xbt_cfgelm_t variable;
- unsigned int cpt;
- double seen;
-
- variable = xbt_cfgelm_get(cfg, name, xbt_cfgelm_double);
-
- if (xbt_dynar_length(variable->content) == variable->min)
- THROWF(mismatch_error, 0,
- "Cannot remove value %f from the config element %s since it's already at its minimal size (=%d)",
- val, name, variable->min);
-
- xbt_dynar_foreach(variable->content, cpt, seen) {
- if (seen == val) {
- xbt_dynar_cursor_rm(variable->content, &cpt);
- if (variable->cb_rm)
- variable->cb_rm(name, cpt);
- return;
- }
- }
-
- THROWF(not_found_error, 0,
- "Can't remove the value %f of config element %s: value not found.",
- val, name);
-}
-
-/** @brief Remove the provided \e val string value from a variable
- *
- * \arg cfg the config set
- * \arg name the name of the variable
- * \arg val the value of the string which will be removed
- */
-void xbt_cfg_rm_string(xbt_cfg_t cfg, const char *name, const char *val)
-{
- xbt_cfgelm_t variable;
- unsigned int cpt;
- char *seen;
-
- variable = xbt_cfgelm_get(cfg, name, xbt_cfgelm_string);
-
- if (xbt_dynar_length(variable->content) == variable->min)
- THROWF(mismatch_error, 0,
- "Cannot remove value %s from the config element %s since it's already at its minimal size (=%d)",
- name, val, variable->min);
-
- xbt_dynar_foreach(variable->content, cpt, seen) {
- if (!strcpy(seen, val)) {
- if (variable->cb_rm)
- variable->cb_rm(name, cpt);
- xbt_dynar_cursor_rm(variable->content, &cpt);
- return;
- }
- }
-
- THROWF(not_found_error, 0,
- "Can't remove the value %s of config element %s: value not found.",
- val, name);
-}
-
-/** @brief Remove the provided \e val boolean value from a variable