* @param len initial size (map will grow as needed)
* @param do_not_copy_keys #GNUNET_NO is always safe and should be used by default;
* #GNUNET_YES means that on 'put', the 'key' does not have
- * to be copied as the destination of the pointer is
+ * to be copied as the destination of the pointer is
* guaranteed to be life as long as the value is stored in
- * the hashmap. This can significantly reduce memory
- * consumption, but of course is also a recipie for
+ * the hashmap. This can significantly reduce memory
+ * consumption, but of course is also a recipie for
* heap corruption if the assumption is not true. Only
* use this if (1) memory use is important in this case and
* (2) you have triple-checked that the invariant holds
* key-value pairs with value NULL
*/
void *
-GNUNET_CONTAINER_multihashmap_get (const struct GNUNET_CONTAINER_MultiHashMap *map,
+GNUNET_CONTAINER_multihashmap_get (const struct GNUNET_CONTAINER_MultiHashMap *map,
const struct GNUNET_HashCode *key);
*/
int
GNUNET_CONTAINER_multihashmap_remove (struct GNUNET_CONTAINER_MultiHashMap *map,
- const struct GNUNET_HashCode *key,
+ const struct GNUNET_HashCode *key,
const void *value);
/**
* @return number of values removed
*/
int
-GNUNET_CONTAINER_multihashmap_remove_all (struct GNUNET_CONTAINER_MultiHashMap *map,
+GNUNET_CONTAINER_multihashmap_remove_all (struct GNUNET_CONTAINER_MultiHashMap *map,
const struct GNUNET_HashCode *key);
* #GNUNET_NO if not
*/
int
-GNUNET_CONTAINER_multihashmap_contains_value (const struct GNUNET_CONTAINER_MultiHashMap *map,
+GNUNET_CONTAINER_multihashmap_contains_value (const struct GNUNET_CONTAINER_MultiHashMap *map,
const struct GNUNET_HashCode *key,
const void *value);
/**
- * @ingroup hashmap
+ * @ingroup hashmap
* Retrieve the next element from the hash map at the iterator's
* position. If there are no elements left, #GNUNET_NO is returned,
* and @a key and @a value are not modified. This operation is only
*/
int
GNUNET_CONTAINER_multihashmap_iterator_next (struct GNUNET_CONTAINER_MultiHashMapIterator *iter,
- struct GNUNET_HashCode *key,
+ struct GNUNET_HashCode *key,
const void **value);
/**
- * @ingroup hashmap
+ * @ingroup hashmap
* Destroy a multihashmap iterator.
*
* @param iter the iterator to destroy
/**
- * @ingroup hashmap
+ * @ingroup hashmap
* Iterate over all entries in the map that match a particular key.
*
* @param map the map
* @param len initial size (map will grow as needed)
* @param do_not_copy_keys #GNUNET_NO is always safe and should be used by default;
* #GNUNET_YES means that on 'put', the 'key' does not have
- * to be copied as the destination of the pointer is
+ * to be copied as the destination of the pointer is
* guaranteed to be life as long as the value is stored in
- * the hashmap. This can significantly reduce memory
- * consumption, but of course is also a recipie for
+ * the hashmap. This can significantly reduce memory
+ * consumption, but of course is also a recipie for
* heap corruption if the assumption is not true. Only
* use this if (1) memory use is important in this case and
* (2) you have triple-checked that the invariant holds
* key-value pairs with value NULL
*/
void *
-GNUNET_CONTAINER_multipeermap_get (const struct GNUNET_CONTAINER_MultiPeerMap *map,
+GNUNET_CONTAINER_multipeermap_get (const struct GNUNET_CONTAINER_MultiPeerMap *map,
const struct GNUNET_PeerIdentity *key);
*/
int
GNUNET_CONTAINER_multipeermap_remove (struct GNUNET_CONTAINER_MultiPeerMap *map,
- const struct GNUNET_PeerIdentity * key,
+ const struct GNUNET_PeerIdentity * key,
const void *value);
/**
* @return number of values removed
*/
int
-GNUNET_CONTAINER_multipeermap_remove_all (struct GNUNET_CONTAINER_MultiPeerMap *map,
+GNUNET_CONTAINER_multipeermap_remove_all (struct GNUNET_CONTAINER_MultiPeerMap *map,
const struct GNUNET_PeerIdentity *key);
* #GNUNET_NO if not
*/
int
-GNUNET_CONTAINER_multipeermap_contains_value (const struct GNUNET_CONTAINER_MultiPeerMap *map,
+GNUNET_CONTAINER_multipeermap_contains_value (const struct GNUNET_CONTAINER_MultiPeerMap *map,
const struct GNUNET_PeerIdentity * key,
const void *value);
*/
int
GNUNET_CONTAINER_multipeermap_put (struct GNUNET_CONTAINER_MultiPeerMap *map,
- const struct GNUNET_PeerIdentity *key,
+ const struct GNUNET_PeerIdentity *key,
void *value,
enum GNUNET_CONTAINER_MultiHashMapOption opt);
/**
- * @ingroup hashmap
+ * @ingroup hashmap
* Retrieve the next element from the hash map at the iterator's
* position. If there are no elements left, #GNUNET_NO is returned,
* and @a key and @a value are not modified. This operation is only
*/
int
GNUNET_CONTAINER_multipeermap_iterator_next (struct GNUNET_CONTAINER_MultiPeerMapIterator *iter,
- struct GNUNET_PeerIdentity *key,
+ struct GNUNET_PeerIdentity *key,
const void **value);
/**
- * @ingroup hashmap
+ * @ingroup hashmap
* Destroy a multipeermap iterator.
*
* @param iter the iterator to destroy
/**
- * @ingroup hashmap
+ * @ingroup hashmap
* Iterate over all entries in the map that match a particular key.
*
* @param map the map
/* Version of multihashmap with 32 bit keys */
/**
- * @ingroup hashmap
+ * @ingroup hashmap
* Opaque handle for the 32-bit key HashMap.
*/
struct GNUNET_CONTAINER_MultiHashMap32;
/**
- * @ingroup hashmap
+ * @ingroup hashmap
* Iterator over hash map entries.
*
* @param cls closure
/**
- * @ingroup hashmap
+ * @ingroup hashmap
* Create a 32-bit key multi hash map.
*
* @param len initial size (map will grow as needed)
/**
- * @ingroup hashmap
+ * @ingroup hashmap
* Destroy a 32-bit key hash map. Will not free any values
* stored in the hash map!
*
/**
- * @ingroup hashmap
+ * @ingroup hashmap
* Get the number of key-value pairs in the map.
*
* @param map the map
/**
- * @ingroup hashmap
+ * @ingroup hashmap
* Given a key find a value in the map matching the key.
*
* @param map the map
* key-value pairs with value NULL
*/
void *
-GNUNET_CONTAINER_multihashmap32_get (const struct
+GNUNET_CONTAINER_multihashmap32_get (const struct
GNUNET_CONTAINER_MultiHashMap32 *map,
uint32_t key);
/**
- * @ingroup hashmap
+ * @ingroup hashmap
* Iterate over all entries in the map.
*
* @param map the map
/**
- * @ingroup hashmap
+ * @ingroup hashmap
* Remove the given key-value pair from the map. Note that if the
* key-value pair is in the map multiple times, only one of the pairs
* will be removed.
*/
int
GNUNET_CONTAINER_multihashmap32_remove (struct GNUNET_CONTAINER_MultiHashMap32 *map,
- uint32_t key,
+ uint32_t key,
const void *value);
/**
- * @ingroup hashmap
+ * @ingroup hashmap
* Remove all entries for the given key from the map.
* Note that the values would not be "freed".
*
/**
- * @ingroup hashmap
+ * @ingroup hashmap
* Check if the map contains any value under the given
* key (including values that are NULL).
*
/**
- * @ingroup hashmap
+ * @ingroup hashmap
* Check if the map contains the given value under the given
* key.
*
* #GNUNET_NO if not
*/
int
-GNUNET_CONTAINER_multihashmap32_contains_value (const struct GNUNET_CONTAINER_MultiHashMap32 *map,
+GNUNET_CONTAINER_multihashmap32_contains_value (const struct GNUNET_CONTAINER_MultiHashMap32 *map,
uint32_t key,
const void *value);
/**
- * @ingroup hashmap
+ * @ingroup hashmap
* Store a key-value pair in the map.
*
* @param map the map
* value already exists
*/
int
-GNUNET_CONTAINER_multihashmap32_put (struct GNUNET_CONTAINER_MultiHashMap32 *map,
- uint32_t key,
+GNUNET_CONTAINER_multihashmap32_put (struct GNUNET_CONTAINER_MultiHashMap32 *map,
+ uint32_t key,
void *value,
enum GNUNET_CONTAINER_MultiHashMapOption opt);
/**
- * @ingroup hashmap
+ * @ingroup hashmap
* Iterate over all entries in the map that match a particular key.
*
* @param map the map
* #GNUNET_SYSERR if it aborted iteration
*/
int
-GNUNET_CONTAINER_multihashmap32_get_multiple (const struct GNUNET_CONTAINER_MultiHashMap32 *map,
+GNUNET_CONTAINER_multihashmap32_get_multiple (const struct GNUNET_CONTAINER_MultiHashMap32 *map,
uint32_t key,
GNUNET_CONTAINER_HashMapIterator32 it,
void *it_cls);
/* To avoid mistakes: head->prev == tail->next == NULL */
/**
- * @ingroup dll
+ * @ingroup dll
* Insert an element at the head of a DLL. Assumes that head, tail and
* element are structs with prev and next fields.
*
/**
- * @ingroup dll
+ * @ingroup dll
* Insert an element at the tail of a DLL. Assumes that head, tail and
* element are structs with prev and next fields.
*
/**
- * @ingroup dll
+ * @ingroup dll
* Insert an element into a DLL after the given other element. Insert
* at the head if the other element is NULL.
*
/**
- * @ingroup dll
+ * @ingroup dll
* Insert an element into a DLL before the given other element. Insert
* at the tail if the other element is NULL.
*
/**
- * @ingroup dll
+ * @ingroup dll
* Remove an element from a DLL. Assumes that head, tail and
* element point to structs with prev and next fields.
*
in multiple lists at the same time *********************** */
/**
- * @ingroup dll
+ * @ingroup dll
* Insert an element at the head of a MDLL. Assumes that head, tail and
* element are structs with prev and next fields.
*
/**
- * @ingroup dll
+ * @ingroup dll
* Insert an element at the tail of a MDLL. Assumes that head, tail and
* element are structs with prev and next fields.
*
/**
- * @ingroup dll
+ * @ingroup dll
* Insert an element into a MDLL after the given other element. Insert
* at the head if the other element is NULL.
*
/**
- * @ingroup dll
+ * @ingroup dll
* Insert an element into a MDLL before the given other element. Insert
* at the tail if the other element is NULL.
*
/**
- * @ingroup dll
+ * @ingroup dll
* Remove an element from a MDLL. Assumes
* that head, tail and element are structs
* with prev and next fields.