-
-/** \brief To dump multicache, this function dumps a cache */
-XBT_PUBLIC(void) xbt_dict_print(void *data);
-/** \brief To dump multicache, this one dumps a string */
-XBT_PUBLIC(void) xbt_dict_prints(void *data);
-
-
-/*----[ xbt_multidict_set ]--------------------------------------------------*/
-XBT_PUBLIC(void)
-xbt_multidict_set(xbt_dict_t mdict,
- xbt_dynar_t keys,
- void *data,void (*free_ctn)(void*));
-XBT_PUBLIC(void)
-xbt_multidict_set_ext(xbt_dict_t mdict,
- xbt_dynar_t keys, xbt_dynar_t lens,
- void *data,void_f_pvoid_t *free_ctn);
-
-/*----[ xbt_multidict_get ]--------------------------------------------------*/
-XBT_PUBLIC(void*) xbt_multidict_get (xbt_dict_t mdict, xbt_dynar_t keys);
-XBT_PUBLIC(void*) xbt_multidict_get_ext(xbt_dict_t mdict, xbt_dynar_t keys, xbt_dynar_t lens);
-
-/*----[ xbt_multidict_remove ]-----------------------------------------------*/
-/*---------------------------------------------------------------------------*/
-XBT_PUBLIC(void) xbt_multidict_remove(xbt_dict_t mdict, xbt_dynar_t keys);
-XBT_PUBLIC(void) xbt_multidict_remove_ext(xbt_dict_t mdict, xbt_dynar_t keys, xbt_dynar_t lens);
+#define xbt_dict_foreach(dict, cursor, key, data) \
+ for ((cursor) = NULL, xbt_dict_cursor_first((dict), &(cursor)); \
+ xbt_dict_cursor_get_or_free(&(cursor), (char**)&(key), (void**)&(data)); xbt_dict_cursor_step(cursor))