-void xbt_dict_cursor_step (xbt_dict_cursor_t cursor);
-int xbt_dict_cursor_get_or_free (xbt_dict_cursor_t *cursor,
- char **key,
- void **data);
-#define xbt_dict_foreach(dict,cursor,key,data) \
- for (cursor=NULL, xbt_dict_cursor_first((dict),&(cursor)) ; \
- xbt_dict_cursor_get_or_free(&(cursor),&(key),(void**)(&data));\
- xbt_dict_cursor_step(cursor) )
+ void xbt_dict_cursor_step (xbt_dict_cursor_t cursor);
+ int xbt_dict_cursor_get_or_free (xbt_dict_cursor_t *cursor,
+ char **key,
+ void **data);
+ /** \brief toto
+ \hideinitializer */
+# define xbt_dict_foreach(dict,cursor,key,data) \
+ for (cursor=NULL, xbt_dict_cursor_first((dict),&(cursor)) ; \
+ xbt_dict_cursor_get_or_free(&(cursor),&(key),(void**)(&data));\
+ xbt_dict_cursor_step(cursor) )
+
+/** @} */
+/** @name 5. Multi-dictionnary
+ *
+ * They can be seen as dictionnary of multiple keys or as dictionnary of
+ * dictionnary of ... of data. Most of the functions here work the same way
+ * than their simple dictionnary counterpart.
+ *
+ * Note that there is no xbt_multidict_free neither xbt_multi_dict_new functions.
+ * Use xbt_dict_free() and xbt_dict_new() instead.
+ *
+ * @{
+ */
+
+/** \brief To dump multicache, this function dumps a cache */
+void xbt_dict_print(void *data);
+/** \brief To dump multicache, this one dumps a string */
+void xbt_dict_prints(void *data);
+
+
+/*----[ xbt_multidict_set ]--------------------------------------------------*/
+xbt_error_t
+xbt_multidict_set(xbt_dict_t mdict,
+ xbt_dynar_t keys,
+ void *data,void (*free_ctn)(void*));
+xbt_error_t
+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_error_t
+xbt_multidict_get(xbt_dict_t mdict,
+ xbt_dynar_t keys,
+ /*OUT*/void **data);
+xbt_error_t
+xbt_multidict_get_ext(xbt_dict_t mdict,
+ xbt_dynar_t keys, xbt_dynar_t lens,
+ /*OUT*/void **data);
+
+/*----[ xbt_multidict_remove ]-----------------------------------------------*/
+/*---------------------------------------------------------------------------*/
+xbt_error_t
+xbt_multidict_remove(xbt_dict_t mdict, xbt_dynar_t keys);
+xbt_error_t
+xbt_multidict_remove_ext(xbt_dict_t mdict,
+ xbt_dynar_t keys, xbt_dynar_t lens);
+
+/** @} */
+/** @} */