-
- /** @brief Configuration set are only special dynars. But don't rely on it, it may change. */
- typedef xbt_dynar_t 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);
-
-
-/*
- Set the value of the cell \a name in \a cfg with the provided value.
- */
-XBT_PUBLIC(void) xbt_cfg_set_int (xbt_cfg_t cfg, const char *name,
- int val);
-XBT_PUBLIC(void) xbt_cfg_set_double(xbt_cfg_t cfg, const char *name,
- double val);
-XBT_PUBLIC(void) xbt_cfg_set_string(xbt_cfg_t cfg, const char *name,
- const char *val);
-XBT_PUBLIC(void) xbt_cfg_set_peer (xbt_cfg_t cfg, const char *name,
- const char *peer,int port);
-
-/*
- Remove the provided value from the cell @name in @cfg.
- */
-XBT_PUBLIC(void) xbt_cfg_rm_int (xbt_cfg_t cfg, const char *name,
- int val);
-XBT_PUBLIC(void) xbt_cfg_rm_double(xbt_cfg_t cfg, const char *name,
- double val);
-XBT_PUBLIC(void) xbt_cfg_rm_string(xbt_cfg_t cfg, const char *name,
- const char *val);
-XBT_PUBLIC(void) xbt_cfg_rm_peer (xbt_cfg_t cfg, const char *name,
- const char *peer,int port);
-
-/*
- Remove the value at position \e pos from the config \e cfg
- */
-XBT_PUBLIC(void) xbt_cfg_rm_at (xbt_cfg_t cfg, const char *name, int pos);
-
-/* rm every values */
-XBT_PUBLIC(void) xbt_cfg_empty(xbt_cfg_t cfg, const char *name);
-
+/** @brief Configuration set's data type is opaque. */
+#ifdef __cplusplus
+#include <xbt/config.hpp>
+using xbt_cfg_t = simgrid::config::Config*;
+#else
+typedef void* xbt_cfg_t;
+#endif
+
+SG_BEGIN_DECL
+
+/* Set the value of the cell @a name in @a cfg with the provided value.*/
+XBT_PUBLIC void sg_cfg_set_int(const char* name, int val);
+XBT_PUBLIC void sg_cfg_set_double(const char* name, double val);
+XBT_PUBLIC void sg_cfg_set_boolean(const char* name, const char* val);
+XBT_PUBLIC void sg_cfg_set_string(const char* name, const char* val);