diff options
author | Christian Grothoff <christian@grothoff.org> | 2009-10-19 22:00:02 +0000 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2009-10-19 22:00:02 +0000 |
commit | 8da07c23a94221fea5d73ebac9a522f72e3adef3 (patch) | |
tree | 1e89253ed881111886df35f4de7a191aea505c42 /src/util/container_multihashmap.c | |
parent | 2ca3d0343fdda87012cedd096d891627b3c59cb2 (diff) | |
download | gnunet-8da07c23a94221fea5d73ebac9a522f72e3adef3.tar.gz gnunet-8da07c23a94221fea5d73ebac9a522f72e3adef3.zip |
fix
Diffstat (limited to 'src/util/container_multihashmap.c')
-rw-r--r-- | src/util/container_multihashmap.c | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/src/util/container_multihashmap.c b/src/util/container_multihashmap.c index 410564a48..41c11bf1b 100644 --- a/src/util/container_multihashmap.c +++ b/src/util/container_multihashmap.c | |||
@@ -19,7 +19,7 @@ | |||
19 | */ | 19 | */ |
20 | /** | 20 | /** |
21 | * @file util/container_multihashmap.c | 21 | * @file util/container_multihashmap.c |
22 | * @brief hash map where the same key maybe present multiple times | 22 | * @brief hash map where the same key may be present multiple times |
23 | * @author Christian Grothoff | 23 | * @author Christian Grothoff |
24 | */ | 24 | */ |
25 | 25 | ||
@@ -28,6 +28,9 @@ | |||
28 | #include "gnunet_container_lib.h" | 28 | #include "gnunet_container_lib.h" |
29 | #include "gnunet_crypto_lib.h" | 29 | #include "gnunet_crypto_lib.h" |
30 | 30 | ||
31 | /** | ||
32 | * | ||
33 | */ | ||
31 | struct MapEntry | 34 | struct MapEntry |
32 | { | 35 | { |
33 | GNUNET_HashCode key; | 36 | GNUNET_HashCode key; |
@@ -35,6 +38,9 @@ struct MapEntry | |||
35 | struct MapEntry *next; | 38 | struct MapEntry *next; |
36 | }; | 39 | }; |
37 | 40 | ||
41 | /** | ||
42 | * | ||
43 | */ | ||
38 | struct GNUNET_CONTAINER_MultiHashMap | 44 | struct GNUNET_CONTAINER_MultiHashMap |
39 | { | 45 | { |
40 | 46 | ||
@@ -45,6 +51,7 @@ struct GNUNET_CONTAINER_MultiHashMap | |||
45 | unsigned int map_length; | 51 | unsigned int map_length; |
46 | }; | 52 | }; |
47 | 53 | ||
54 | |||
48 | struct GNUNET_CONTAINER_MultiHashMap * | 55 | struct GNUNET_CONTAINER_MultiHashMap * |
49 | GNUNET_CONTAINER_multihashmap_create (unsigned int len) | 56 | GNUNET_CONTAINER_multihashmap_create (unsigned int len) |
50 | { | 57 | { |
@@ -58,6 +65,7 @@ GNUNET_CONTAINER_multihashmap_create (unsigned int len) | |||
58 | return ret; | 65 | return ret; |
59 | } | 66 | } |
60 | 67 | ||
68 | |||
61 | void | 69 | void |
62 | GNUNET_CONTAINER_multihashmap_destroy (struct GNUNET_CONTAINER_MultiHashMap | 70 | GNUNET_CONTAINER_multihashmap_destroy (struct GNUNET_CONTAINER_MultiHashMap |
63 | *map) | 71 | *map) |
@@ -84,6 +92,7 @@ idx_of (const struct GNUNET_CONTAINER_MultiHashMap *m, | |||
84 | return (*(unsigned int *) key) % m->map_length; | 92 | return (*(unsigned int *) key) % m->map_length; |
85 | } | 93 | } |
86 | 94 | ||
95 | |||
87 | unsigned int | 96 | unsigned int |
88 | GNUNET_CONTAINER_multihashmap_size (const struct GNUNET_CONTAINER_MultiHashMap | 97 | GNUNET_CONTAINER_multihashmap_size (const struct GNUNET_CONTAINER_MultiHashMap |
89 | *map) | 98 | *map) |
@@ -91,6 +100,7 @@ GNUNET_CONTAINER_multihashmap_size (const struct GNUNET_CONTAINER_MultiHashMap | |||
91 | return map->size; | 100 | return map->size; |
92 | } | 101 | } |
93 | 102 | ||
103 | |||
94 | void * | 104 | void * |
95 | GNUNET_CONTAINER_multihashmap_get (const struct GNUNET_CONTAINER_MultiHashMap | 105 | GNUNET_CONTAINER_multihashmap_get (const struct GNUNET_CONTAINER_MultiHashMap |
96 | *map, const GNUNET_HashCode * key) | 106 | *map, const GNUNET_HashCode * key) |
@@ -107,6 +117,7 @@ GNUNET_CONTAINER_multihashmap_get (const struct GNUNET_CONTAINER_MultiHashMap | |||
107 | return NULL; | 117 | return NULL; |
108 | } | 118 | } |
109 | 119 | ||
120 | |||
110 | int | 121 | int |
111 | GNUNET_CONTAINER_multihashmap_iterate (const struct | 122 | GNUNET_CONTAINER_multihashmap_iterate (const struct |
112 | GNUNET_CONTAINER_MultiHashMap *map, | 123 | GNUNET_CONTAINER_MultiHashMap *map, |
@@ -132,6 +143,7 @@ GNUNET_CONTAINER_multihashmap_iterate (const struct | |||
132 | return count; | 143 | return count; |
133 | } | 144 | } |
134 | 145 | ||
146 | |||
135 | int | 147 | int |
136 | GNUNET_CONTAINER_multihashmap_remove (struct GNUNET_CONTAINER_MultiHashMap | 148 | GNUNET_CONTAINER_multihashmap_remove (struct GNUNET_CONTAINER_MultiHashMap |
137 | *map, const GNUNET_HashCode * key, | 149 | *map, const GNUNET_HashCode * key, |
@@ -163,6 +175,7 @@ GNUNET_CONTAINER_multihashmap_remove (struct GNUNET_CONTAINER_MultiHashMap | |||
163 | return GNUNET_NO; | 175 | return GNUNET_NO; |
164 | } | 176 | } |
165 | 177 | ||
178 | |||
166 | int | 179 | int |
167 | GNUNET_CONTAINER_multihashmap_remove_all (struct GNUNET_CONTAINER_MultiHashMap | 180 | GNUNET_CONTAINER_multihashmap_remove_all (struct GNUNET_CONTAINER_MultiHashMap |
168 | *map, const GNUNET_HashCode * key) | 181 | *map, const GNUNET_HashCode * key) |
@@ -201,6 +214,7 @@ GNUNET_CONTAINER_multihashmap_remove_all (struct GNUNET_CONTAINER_MultiHashMap | |||
201 | return ret; | 214 | return ret; |
202 | } | 215 | } |
203 | 216 | ||
217 | |||
204 | int | 218 | int |
205 | GNUNET_CONTAINER_multihashmap_contains (const struct | 219 | GNUNET_CONTAINER_multihashmap_contains (const struct |
206 | GNUNET_CONTAINER_MultiHashMap *map, | 220 | GNUNET_CONTAINER_MultiHashMap *map, |
@@ -220,6 +234,7 @@ GNUNET_CONTAINER_multihashmap_contains (const struct | |||
220 | return GNUNET_NO; | 234 | return GNUNET_NO; |
221 | } | 235 | } |
222 | 236 | ||
237 | |||
223 | static void | 238 | static void |
224 | grow (struct GNUNET_CONTAINER_MultiHashMap *map) | 239 | grow (struct GNUNET_CONTAINER_MultiHashMap *map) |
225 | { | 240 | { |
@@ -245,6 +260,7 @@ grow (struct GNUNET_CONTAINER_MultiHashMap *map) | |||
245 | GNUNET_free (old); | 260 | GNUNET_free (old); |
246 | } | 261 | } |
247 | 262 | ||
263 | |||
248 | int | 264 | int |
249 | GNUNET_CONTAINER_multihashmap_put (struct GNUNET_CONTAINER_MultiHashMap *map, | 265 | GNUNET_CONTAINER_multihashmap_put (struct GNUNET_CONTAINER_MultiHashMap *map, |
250 | const GNUNET_HashCode * key, | 266 | const GNUNET_HashCode * key, |
@@ -284,6 +300,7 @@ GNUNET_CONTAINER_multihashmap_put (struct GNUNET_CONTAINER_MultiHashMap *map, | |||
284 | return GNUNET_OK; | 300 | return GNUNET_OK; |
285 | } | 301 | } |
286 | 302 | ||
303 | |||
287 | int | 304 | int |
288 | GNUNET_CONTAINER_multihashmap_get_multiple (const struct | 305 | GNUNET_CONTAINER_multihashmap_get_multiple (const struct |
289 | GNUNET_CONTAINER_MultiHashMap | 306 | GNUNET_CONTAINER_MultiHashMap |
@@ -309,6 +326,7 @@ GNUNET_CONTAINER_multihashmap_get_multiple (const struct | |||
309 | return count; | 326 | return count; |
310 | } | 327 | } |
311 | 328 | ||
329 | |||
312 | void * | 330 | void * |
313 | GNUNET_CONTAINER_multihashmap_get_random (const struct | 331 | GNUNET_CONTAINER_multihashmap_get_random (const struct |
314 | GNUNET_CONTAINER_MultiHashMap *map) | 332 | GNUNET_CONTAINER_MultiHashMap *map) |
@@ -331,4 +349,4 @@ GNUNET_CONTAINER_multihashmap_get_random (const struct | |||
331 | return e->value; | 349 | return e->value; |
332 | } | 350 | } |
333 | 351 | ||
334 | /* end of multihashmap.c */ | 352 | /* end of container_multihashmap.c */ |