Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
We never use a second configuration set, so simplify the API
authorMartin Quinson <martin.quinson@loria.fr>
Tue, 5 Apr 2016 04:33:20 +0000 (06:33 +0200)
committerMartin Quinson <martin.quinson@loria.fr>
Tue, 5 Apr 2016 04:33:20 +0000 (06:33 +0200)
include/xbt/config.h
src/simgrid/sg_config.cpp
src/surf/xml/surfxml_sax_cb.cpp
src/xbt/config.c
src/xbt/xbt_main.c
teshsuite/surf/surf_usage/surf_usage.cpp
teshsuite/surf/surf_usage2/surf_usage2.cpp

index 362fc84..d311b66 100644 (file)
@@ -82,7 +82,7 @@ typedef void* xbt_cfg_t;
 
 XBT_PUBLIC(void) xbt_cfg_set(xbt_cfg_t cfg, const char *name, ...);
 XBT_PUBLIC(void) xbt_cfg_set_vargs(xbt_cfg_t cfg, const char *name, va_list pa);
-XBT_PUBLIC(void) xbt_cfg_set_parse(xbt_cfg_t cfg, const char *options);
+XBT_PUBLIC(void) xbt_cfg_set_parse(const char *options);
 
 /* Set the value of the cell \a name in \a cfg with the provided value.*/
 XBT_PUBLIC(void) xbt_cfg_set_int       (const char *name, int val);
@@ -171,7 +171,7 @@ XBT_PUBLIC(void) xbt_cfg_register_str(xbt_cfg_t * cfg, const char *entry);
 
 XBT_PUBLIC(void) xbt_cfg_aliases(xbt_cfg_t cfg);
 XBT_PUBLIC(void) xbt_cfg_help(xbt_cfg_t cfg);
-XBT_PUBLIC(void) xbt_cfg_check(xbt_cfg_t cfg);
+XBT_PUBLIC(void) xbt_cfg_check(void);
 XBT_PUBLIC(e_xbt_cfgelm_type_t) xbt_cfg_get_type(xbt_cfg_t cfg, const char *name);
 /*  @} */
 /** @defgroup XBT_cfg_get Getting the stored values
index de7938f..c9bc0aa 100644 (file)
@@ -54,7 +54,7 @@ static void sg_config_cmd_line(int *argc, char **argv)
       opt = strchr(argv[i], '=');
       opt++;
 
-      xbt_cfg_set_parse(simgrid_config, opt);
+      xbt_cfg_set_parse(opt);
       XBT_DEBUG("Did apply '%s' as config setting", opt);
     } else if (!strcmp(argv[i], "--version")) {
       printf("%s\n", SIMGRID_VERSION_STRING);
@@ -724,7 +724,7 @@ void sg_config_init(int *argc, char **argv)
       xbt_cfg_setdefault_string("path", initial_path);
     }
 
-    xbt_cfg_check(simgrid_config);
+    xbt_cfg_check();
     _sg_cfg_init_status = 1;
 
     sg_config_cmd_line(argc, argv);
index 63c8c76..9899cfa 100644 (file)
@@ -904,7 +904,7 @@ void ETag_surfxml_config(void){
   xbt_dict_foreach(current_property_set, cursor, key, elem) {
     cfg = bprintf("%s:%s",key,elem);
     if(xbt_cfg_is_default_value(key))
-      xbt_cfg_set_parse(simgrid_config, cfg);
+      xbt_cfg_set_parse(cfg);
     else
       XBT_INFO("The custom configuration '%s' is already defined by user!",key);
     free(cfg);
index a3e59df..9e06f58 100644 (file)
@@ -197,14 +197,13 @@ void xbt_cfgelm_free(void *data)
 void xbt_cfg_register(xbt_cfg_t * cfg, const char *name, const char *desc, e_xbt_cfgelm_type_t type, int min,
                       int max, xbt_cfg_cb_t cb_set)
 {
-  xbt_cfgelm_t res;
-
   if (*cfg == NULL)
     *cfg = xbt_cfg_new();
   xbt_assert(type >= xbt_cfgelm_int && type <= xbt_cfgelm_boolean,
               "type of %s not valid (%d should be between %d and %d)",
              name, (int)type, xbt_cfgelm_int, xbt_cfgelm_boolean);
-  res = xbt_dict_get_or_null((xbt_dict_t) * cfg, name);
+
+  xbt_cfgelm_t res = xbt_dict_get_or_null((xbt_dict_t) * cfg, name);
   xbt_assert(NULL == res, "Refusing to register the config element '%s' twice.", name);
 
   res = xbt_new(s_xbt_cfgelm_t, 1);
@@ -239,19 +238,19 @@ void xbt_cfg_register(xbt_cfg_t * cfg, const char *name, const char *desc, e_xbt
 }
 
 void xbt_cfg_register_double(const char *name, const char *desc, double default_value,xbt_cfg_cb_t cb_set){
-  xbt_cfg_register(simgrid_config,name,desc,xbt_cfgelm_double,1,1,cb_set);
+  xbt_cfg_register(&simgrid_config,name,desc,xbt_cfgelm_double,1,1,cb_set);
   xbt_cfg_setdefault_double(name, default_value);
 }
 void xbt_cfg_register_int(const char *name, const char *desc, int default_value,xbt_cfg_cb_t cb_set){
-  xbt_cfg_register(simgrid_config,name,desc,xbt_cfgelm_int,1,1,cb_set);
+  xbt_cfg_register(&simgrid_config,name,desc,xbt_cfgelm_int,1,1,cb_set);
   xbt_cfg_setdefault_int(name, default_value);
 }
 void xbt_cfg_register_string(const char *name, const char *desc, const char *default_value, xbt_cfg_cb_t cb_set){
-  xbt_cfg_register(simgrid_config,name,desc,xbt_cfgelm_string,1,1,cb_set);
+  xbt_cfg_register(&simgrid_config,name,desc,xbt_cfgelm_string,1,1,cb_set);
   xbt_cfg_setdefault_string(name, default_value);
 }
 void xbt_cfg_register_boolean(const char *name, const char *desc, const char*default_value,xbt_cfg_cb_t cb_set){
-  xbt_cfg_register(simgrid_config,name,desc,xbt_cfgelm_boolean,1,1,cb_set);
+  xbt_cfg_register(&simgrid_config,name,desc,xbt_cfgelm_boolean,1,1,cb_set);
   xbt_cfg_setdefault_boolean(name, default_value);
 }
 
@@ -427,21 +426,17 @@ void xbt_cfg_help(xbt_cfg_t cfg)
 }
 
 /** @brief Check that each variable have the right amount of values */
-void xbt_cfg_check(xbt_cfg_t cfg)
+void xbt_cfg_check(void)
 {
   xbt_dict_cursor_t cursor;
   xbt_cfgelm_t variable;
   char *name;
-  int size;
 
-  xbt_assert(cfg, "NULL config set.");
-  XBT_DEBUG("Check cfg set %p", cfg);
-
-  xbt_dict_foreach((xbt_dict_t) cfg, cursor, name, variable) {
+  xbt_dict_foreach((xbt_dict_t) simgrid_config, cursor, name, variable) {
     if (variable->type == xbt_cfgelm_alias)
       continue;
 
-    size = xbt_dynar_length(variable->content);
+    int size = xbt_dynar_length(variable->content);
     if (variable->min > size) {
       xbt_dict_cursor_free(&cursor);
       THROWF(mismatch_error, 0, "Config elem %s needs at least %d %s, but there is only %d values.",
@@ -573,14 +568,13 @@ void xbt_cfg_set(xbt_cfg_t cfg, const char *name, ...)
 
 /** @brief Add values parsed from a string into a config set
  *
- * @param cfg config set to fill
  * @param options a string containing the content to add to the config set. This is a '\\t',' ' or '\\n' or ','
  * separated list of variables. Each individual variable is like "[name]:[value]" where [name] is the name of an
  * already registered variable, and [value] conforms to the data type under which this variable was registered.
  *
  * @todo This is a crude manual parser, it should be a proper lexer.
  */
-void xbt_cfg_set_parse(xbt_cfg_t cfg, const char *options)
+void xbt_cfg_set_parse(const char *options)
 {
   if (!options || !strlen(options)) {   /* nothing to do */
     return;
@@ -776,7 +770,6 @@ void xbt_cfg_setdefault_boolean(const char *name, const char *val)
  */
 void xbt_cfg_set_int(const char *name, int val)
 {
-  XBT_VERB("Configuration setting: %s=%d", name, val);
   xbt_cfgelm_t variable = xbt_cfgelm_get(simgrid_config, name, xbt_cfgelm_int);
 
   if (variable->max == 1) {
@@ -802,7 +795,6 @@ void xbt_cfg_set_int(const char *name, int val)
  */
 void xbt_cfg_set_double(const char *name, double val)
 {
-  XBT_VERB("Configuration setting: %s=%f", name, val);
   xbt_cfgelm_t variable = xbt_cfgelm_get(simgrid_config, name, xbt_cfgelm_double);
 
   if (variable->max == 1) {
@@ -830,13 +822,8 @@ void xbt_cfg_set_double(const char *name, double val)
 void xbt_cfg_set_string(const char *name, const char *val)
 {
   char *newval = xbt_strdup(val);
-
-  XBT_VERB("Configuration setting: %s=%s", name, val);
   xbt_cfgelm_t variable = xbt_cfgelm_get(simgrid_config, name, xbt_cfgelm_string);
 
-  XBT_DEBUG("Variable: %d to %d %s (=%d) @%p",
-         variable->min, variable->max, xbt_cfgelm_type_name[variable->type], (int)variable->type, variable);
-
   if (variable->max == 1) {
     if (!xbt_dynar_is_empty(variable->content)) {
       char *sval = xbt_dynar_get_as(variable->content, 0, char *);
@@ -860,15 +847,12 @@ void xbt_cfg_set_string(const char *name, const char *val)
 
 /** @brief Set or add a boolean value to \a name within \a cfg
  *
- * @param cfg the config set
  * @param name the name of the variable
  * @param val the value of the variable
  */
 void xbt_cfg_set_boolean(const char *name, const char *val)
 {
   int i, bval;
-
-  XBT_VERB("Configuration setting: %s=%s", name, val);
   xbt_cfgelm_t variable = xbt_cfgelm_get(simgrid_config, name, xbt_cfgelm_boolean);
 
   for (i = 0; xbt_cfgelm_boolean_values[i].true_val != NULL; i++) {
@@ -1214,72 +1198,67 @@ static xbt_cfg_t make_set()
   return set;
 }                               /* end_of_make_set */
 
+extern xbt_cfg_t simgrid_config;
+
 XBT_TEST_UNIT("memuse", test_config_memuse, "Alloc and free a config set")
 {
-  xbt_cfg_t set = make_set();
+  simgrid_config = make_set();
   xbt_test_add("Alloc and free a config set");
-  xbt_cfg_set_parse(set, "peername:veloce user:mquinson\nuser:oaumage\tuser:alegrand");
-  xbt_cfg_free(&set);
-  xbt_cfg_free(&set);
+  xbt_cfg_set_parse("peername:veloce user:mquinson\nuser:oaumage\tuser:alegrand");
+  xbt_cfg_free(&simgrid_config);
 }
 
 XBT_TEST_UNIT("validation", test_config_validation, "Validation tests")
 {
-  xbt_cfg_t set = set = make_set();
   xbt_ex_t e;
 
+  simgrid_config = make_set();
   xbt_test_add("Having too few elements for speed");
-  xbt_cfg_set_parse(set, "peername:veloce user:mquinson\nuser:oaumage\tuser:alegrand");
+  xbt_cfg_set_parse("peername:veloce user:mquinson\nuser:oaumage\tuser:alegrand");
   TRY {
-    xbt_cfg_check(set);
+    xbt_cfg_check();
   } CATCH(e) {
     if (e.category != mismatch_error || strncmp(e.msg, "Config elem speed needs", strlen("Config elem speed needs")))
       xbt_test_fail("Got an exception. msg=%s", e.msg);
     xbt_ex_free(e);
   }
-  xbt_cfg_free(&set);
-  xbt_cfg_free(&set);
 
   xbt_test_add("Having too much values of 'speed'");
-  set = make_set();
-  xbt_cfg_set_parse(set, "peername:toto:42 user:alegrand");
+  xbt_cfg_set_parse("peername:toto:42 user:alegrand");
   TRY {
-    xbt_cfg_set_parse(set, "speed:42 speed:24 speed:34");
+    xbt_cfg_set_parse("speed:42 speed:24 speed:34");
   } CATCH(e) {
     if (e.category != mismatch_error ||
         strncmp(e.msg, "Cannot add value 34 to the config elem speed", strlen("Config elem speed needs")))
       xbt_test_fail("Got an exception. msg=%s", e.msg);
     xbt_ex_free(e);
   }
-  xbt_cfg_check(set);
-  xbt_cfg_free(&set);
-  xbt_cfg_free(&set);
+  xbt_cfg_check();
+  xbt_cfg_free(&simgrid_config);
 }
 
 XBT_TEST_UNIT("use", test_config_use, "Data retrieving tests")
 {
+  simgrid_config = make_set();
   xbt_test_add("Get a single value");
   {
     /* get_single_value */
     int ival;
-    xbt_cfg_t myset = make_set();
 
-    xbt_cfg_set_parse(myset, "peername:toto:42 speed:42");
+    xbt_cfg_set_parse("peername:toto:42 speed:42");
     ival = xbt_cfg_get_int("speed");
     if (ival != 42)
       xbt_test_fail("Speed value = %d, I expected 42", ival);
-    xbt_cfg_free(&myset);
   }
 
   xbt_test_add("Get multiple values");
   {
     /* get_multiple_value */
     xbt_dynar_t dyn;
-    xbt_cfg_t myset = make_set();
 
-    xbt_cfg_set_parse(myset, "peername:veloce user:foo\nuser:bar\tuser:toto");
-    xbt_cfg_set_parse(myset, "speed:42");
-    xbt_cfg_check(myset);
+    xbt_cfg_set_parse("peername:veloce user:foo\nuser:bar\tuser:toto");
+    xbt_cfg_set_parse("speed:42");
+    xbt_cfg_check();
     dyn = xbt_cfg_get_dynar("user");
 
     if (xbt_dynar_length(dyn) != 3)
@@ -1293,23 +1272,20 @@ XBT_TEST_UNIT("use", test_config_use, "Data retrieving tests")
 
     if (strcmp(xbt_dynar_get_as(dyn, 2, char *), "toto"))
        xbt_test_fail("Dynar[2] = %s, I expected toto", xbt_dynar_get_as(dyn, 2, char *));
-    xbt_cfg_free(&myset);
   }
 
   xbt_test_add("Access to a non-existant entry");
   {
-    /* non-existant_entry */
-    xbt_cfg_t myset = make_set();
     xbt_ex_t e;
 
     TRY {
-      xbt_cfg_set_parse(myset, "color:blue");
+      xbt_cfg_set_parse("color:blue");
     } CATCH(e) {
       if (e.category != not_found_error)
         xbt_test_exception(e);
       xbt_ex_free(e);
     }
-    xbt_cfg_free(&myset);
   }
+  xbt_cfg_free(&simgrid_config);
 }
 #endif                          /* SIMGRID_TEST */
index 43e903f..8b9b415 100644 (file)
@@ -144,10 +144,8 @@ void xbt_init(int *argc, char **argv)
 
   xbt_binary_name = xbt_strdup(argv[0]);
   xbt_cmdline = xbt_dynar_new(sizeof(char*),NULL);
-  int i;
-  for (i=0;i<*argc;i++) {
+  for (int i=0;i<*argc;i++)
     xbt_dynar_push(xbt_cmdline,&(argv[i]));
-  }
   
   xbt_log_init(argc, argv);
 }
index 3eeab96..133e392 100644 (file)
@@ -38,8 +38,8 @@ int main(int argc, char **argv)
 {
   double now = -1.0;
   surf_init(&argc, argv);       /* Initialize some common structures */
-  xbt_cfg_set_string("cpu/model","Cas01");
-  xbt_cfg_set_string("network/model","CM02");
+  xbt_cfg_set_parse("cpu/model:Cas01");
+  xbt_cfg_set_parse("network/model:CM02");
 
   xbt_assert(argc >1, "Usage : %s platform.txt\n", argv[0]);
   parse_platform_file(argv[1]);
index 490fe30..2308198 100644 (file)
@@ -24,8 +24,8 @@ int main(int argc, char **argv)
 
   surf_init(&argc, argv);       /* Initialize some common structures */
 
-  xbt_cfg_set_string("network/model","CM02");
-  xbt_cfg_set_string("cpu/model","Cas01");
+  xbt_cfg_set_parse("network/model:CM02");
+  xbt_cfg_set_parse("cpu/model:Cas01");
 
   xbt_assert(argc >1, "Usage : %s platform.txt\n", argv[0]);
   parse_platform_file(argv[1]);