summaryrefslogtreecommitdiffstats
path: root/polyp/hashmap.h
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2004-11-21 02:43:05 +0000
committerLennart Poettering <lennart@poettering.net>2004-11-21 02:43:05 +0000
commitfa751e537db75108f9a1597d83a4e1093173fc28 (patch)
treed07c63ecfbc618599c88a089055713f98b02f9ba /polyp/hashmap.h
parent6985eda9347730d4506de630c310a34e7844df0a (diff)
some commenting
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@298 fefdeb5f-60dc-0310-8127-8f9354f1896f
Diffstat (limited to 'polyp/hashmap.h')
-rw-r--r--polyp/hashmap.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/polyp/hashmap.h b/polyp/hashmap.h
index f858c355..d55834c1 100644
--- a/polyp/hashmap.h
+++ b/polyp/hashmap.h
@@ -22,14 +22,23 @@
USA.
***/
+/* Simple Implementation of a hash table. Memory management is the
+ * user's job. It's a good idea to have the key pointer point to a
+ * string in the value data. */
+
struct pa_hashmap;
+/* Create a new hashmap. Use the specified functions for hashing and comparing objects in the map */
struct pa_hashmap *pa_hashmap_new(unsigned (*hash_func) (const void *p), int (*compare_func) (const void*a, const void*b));
+
+/* Free the hash table. Calls the specified function for every value in the table. The function may be NULL */
void pa_hashmap_free(struct pa_hashmap*, void (*free_func)(void *p, void *userdata), void *userdata);
+/* Returns non-zero when the entry already exists */
int pa_hashmap_put(struct pa_hashmap *h, const void *key, void *value);
void* pa_hashmap_get(struct pa_hashmap *h, const void *key);
+/* Returns the data of the entry while removing */
void* pa_hashmap_remove(struct pa_hashmap *h, const void *key);
unsigned pa_hashmap_ncontents(struct pa_hashmap *h);