X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/2539fff313cbd67c45b8490f7961e45e358d9ba2..119672546f8bc26a87d11164146b628d9a2883d9:/src/xbt/dict_cursor.c diff --git a/src/xbt/dict_cursor.c b/src/xbt/dict_cursor.c index 48eab46c1d..1e3393556b 100644 --- a/src/xbt/dict_cursor.c +++ b/src/xbt/dict_cursor.c @@ -2,11 +2,10 @@ /* dict_cursor - iterators over dictionnaries */ -/* Authors: Martin Quinson */ -/* Copyright (C) 2003,2004 Martin Quinson. */ +/* Copyright (c) 2003, 2004 Martin Quinson. All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it - under the terms of the license (GNU LGPL) which comes with this package. */ + * under the terms of the license (GNU LGPL) which comes with this package. */ #include "xbt/misc.h" #include "dict_private.h" @@ -37,17 +36,11 @@ _cursor_push_keys(xbt_dict_cursor_t p_cursor, #undef xbt_dict_CURSOR_DEBUG /*#define xbt_dict_CURSOR_DEBUG 1*/ -/** - * xbt_dict_cursor_new: - * - * @head: the head of the dict - * @cursor: the curent position in the dict - * - * Structure creator +/** @brief Creator + * @param head the dict */ xbt_dict_cursor_t xbt_dict_cursor_new(const xbt_dict_t head) { - xbt_error_t errcode = no_error; xbt_dict_cursor_t res = NULL; res = xbt_new(s_xbt_dict_cursor_t,1); @@ -63,25 +56,20 @@ xbt_dict_cursor_new(const xbt_dict_t head) { } /** - * xbt_dict_cursor_free: - * - * @cursor: poor victim - * - * Structure destructor + * @brief Destructor + * @param cursor poor victim */ void xbt_dict_cursor_free(xbt_dict_cursor_t *cursor) { if (*cursor) { xbt_dynar_free(&((*cursor)->keys)); xbt_dynar_free(&((*cursor)->key_lens)); - xbt_free(*cursor); + free(*cursor); *cursor = NULL; } } -/** - * __cursor_not_null: - * +/* * Sanity check to see if the head contains something */ static _XBT_INLINE @@ -102,14 +90,13 @@ static _XBT_INLINE void _cursor_push_keys(xbt_dict_cursor_t cursor, xbt_dictelm_t elm) { - xbt_error_t errcode = no_error; xbt_dictelm_t child = NULL; int i = 0; static volatile int count = 0; /* ??? */ - CDEBUG1(dict_cursor, "Push childs of %p in the cursor", (void*)elm); + CDEBUG3(dict_cursor, "Push childs of %p (%.*s) in the cursor", (void*)elm, elm->key_len, elm->key); - if (elm->content) { + if (!elm->internal) { xbt_dynar_push(cursor->keys, &elm->key ); xbt_dynar_push(cursor->key_lens, &elm->key_len); count++; @@ -123,16 +110,9 @@ _cursor_push_keys(xbt_dict_cursor_t cursor, CDEBUG1(dict_cursor, "Count = %d", count); } -/** - * xbt_dict_cursor_rewind: - * @cursor: the cursor - * @Returns: xbt_error_t - * - * back to the first element - */ +/** @brief Reinitialize the cursor. Mandatory after removal or add in dict. */ void xbt_dict_cursor_rewind(xbt_dict_cursor_t cursor) { - xbt_error_t errcode = no_error; CDEBUG0(dict_cursor, "xbt_dict_cursor_rewind"); xbt_assert(cursor); @@ -151,11 +131,10 @@ xbt_dict_cursor_rewind(xbt_dict_cursor_t cursor) { } /** - * xbt_dict_cursor_first: - * @dict: on what to let the cursor iterate - * @cursor: dest address + * @brief Create the cursor if it does not exists. Rewind it in any case. * - * Create the cursor if it does not exists. Rewind it in any case. + * @param dict on what to let the cursor iterate + * @param[out] cursor dest address */ void xbt_dict_cursor_first (const xbt_dict_t dict, xbt_dict_cursor_t *cursor){ @@ -170,30 +149,28 @@ void xbt_dict_cursor_first (const xbt_dict_t dict, /** - * xbt_dict_cursor_step: - * @cursor: the cursor - * - * Move to the next element. + * \brief Move to the next element. */ void xbt_dict_cursor_step(xbt_dict_cursor_t cursor) { xbt_assert(cursor); + DEBUG2("step cursor. Current=%.*s", + xbt_dynar_get_as(cursor->key_lens,cursor->pos_len,int), + xbt_dynar_get_as(cursor->keys,cursor->pos,char *)); xbt_dynar_cursor_step(cursor->keys, &cursor->pos); xbt_dynar_cursor_step(cursor->key_lens, &cursor->pos_len); } /** - * xbt_dict_cursor_get_or_free: - * @cursor: the cursor - * @Returns: true if it's ok, false if there is no more data + * @brief Get current data, or free the cursor if there is no data left * - * Get current data + * @returns true if it's ok, false if there is no more data */ int xbt_dict_cursor_get_or_free(xbt_dict_cursor_t *cursor, - char **key, - void **data) { + char **key, + void **data) { xbt_error_t errcode = no_error; int key_len = 0; @@ -222,12 +199,9 @@ xbt_dict_cursor_get_or_free(xbt_dict_cursor_t *cursor, } /** - * xbt_dict_cursor_get_key: - * @cursor: the cursor - * @key: the current element - * @Returns: xbt_error_t - * - * Get current key + * @brief Get current key + * @param cursor: the cursor + * @param key where to put the key */ xbt_error_t xbt_dict_cursor_get_key(xbt_dict_cursor_t cursor, @@ -242,10 +216,9 @@ xbt_dict_cursor_get_key(xbt_dict_cursor_t cursor, } /** - * xbt_dict_cursor_get_data: - * @cursor: the cursor - * - * Get current data + * @brief Get current data + * @param cursor the cursor + * @param data where to put the data */ xbt_error_t xbt_dict_cursor_get_data(xbt_dict_cursor_t cursor,