Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
simgrid::config::flag, a more declarative way to describe CLI flags
[simgrid.git] / include / xbt / config.h
index a9e4c70..4061014 100644 (file)
@@ -131,10 +131,11 @@ struct xbt_boolean_couple {
 };
 
 /** \brief Callback types. They get the name of the modified entry, and the position of the changed value */
-typedef void (*xbt_cfg_cb_t) (const char *);
+typedef void (*xbt_cfg_cb_t) (const char * name);
+typedef void (*xbt_cfg_cb_ext_t)(const char * name, void* cb_data);
+typedef void (*xbt_cfg_cb_free_t)(void* cb_data);
 
 XBT_PUBLIC(xbt_cfg_t) xbt_cfg_new(void);
-XBT_PUBLIC(void) xbt_cfg_cpy(xbt_cfg_t tocopy,  /* OUT */xbt_cfg_t * whereto);
 XBT_PUBLIC(void) xbt_cfg_free(xbt_cfg_t * cfg);
 XBT_PUBLIC(void) xbt_cfg_dump(const char *name, const char *indent, xbt_cfg_t cfg);
 
@@ -154,6 +155,10 @@ XBT_PUBLIC(void) xbt_cfg_register_boolean(const char *name, const char*default_v
 XBT_PUBLIC(void) xbt_cfg_register_alias(const char *newname, const char *oldname);
 XBT_PUBLIC(void) xbt_cfg_register_str(xbt_cfg_t * cfg, const char *entry);
 
+XBT_PUBLIC(void) xbt_cfg_register_ext(
+  const char *name, const char *desc, e_xbt_cfgelm_type_t type,
+  xbt_cfg_cb_ext_t cb, void* data, xbt_cfg_cb_free_t data_free);
+
 XBT_PUBLIC(void) xbt_cfg_aliases(void);
 XBT_PUBLIC(void) xbt_cfg_help(void);
 XBT_PUBLIC(e_xbt_cfgelm_type_t) xbt_cfg_get_type(xbt_cfg_t cfg, const char *name);