summaryrefslogtreecommitdiff
path: root/src/libstrongswan/collections/hashtable.h
diff options
context:
space:
mode:
authorYves-Alexis Perez <corsac@debian.org>2013-08-25 15:37:26 +0200
committerYves-Alexis Perez <corsac@debian.org>2013-08-25 15:37:26 +0200
commit6b99c8d9cff7b3e8ae8f3204b99e7ea40f791349 (patch)
tree009fc492961e13860d2a4bc2de8caf2bbe2975e7 /src/libstrongswan/collections/hashtable.h
parentc83921a2b566aa9d55d8ccc7258f04fca6292ee6 (diff)
downloadvyos-strongswan-6b99c8d9cff7b3e8ae8f3204b99e7ea40f791349.tar.gz
vyos-strongswan-6b99c8d9cff7b3e8ae8f3204b99e7ea40f791349.zip
Imported Upstream version 5.1.0
Diffstat (limited to 'src/libstrongswan/collections/hashtable.h')
-rw-r--r--src/libstrongswan/collections/hashtable.h35
1 files changed, 34 insertions, 1 deletions
diff --git a/src/libstrongswan/collections/hashtable.h b/src/libstrongswan/collections/hashtable.h
index e38850ded..520a86c90 100644
--- a/src/libstrongswan/collections/hashtable.h
+++ b/src/libstrongswan/collections/hashtable.h
@@ -34,6 +34,22 @@ typedef struct hashtable_t hashtable_t;
typedef u_int (*hashtable_hash_t)(void *key);
/**
+ * Hashtable hash function calculation the hash solely based on the key pointer.
+ *
+ * @param key key to hash
+ * @return hash of key
+ */
+u_int hashtable_hash_ptr(void *key);
+
+/**
+ * Hashtable hash function calculation the hash for char* keys.
+ *
+ * @param key key to hash, a char*
+ * @return hash of key
+ */
+u_int hashtable_hash_str(void *key);
+
+/**
* Prototype for a function that compares the two keys for equality.
*
* @param key first key (the one we are looking for)
@@ -43,6 +59,24 @@ typedef u_int (*hashtable_hash_t)(void *key);
typedef bool (*hashtable_equals_t)(void *key, void *other_key);
/**
+ * Hashtable equals function comparing pointers.
+ *
+ * @param key key to compare
+ * @param other_key other key to compare
+ * @return TRUE if key == other_key
+ */
+bool hashtable_equals_ptr(void *key, void *other_key);
+
+/**
+ * Hashtable equals function comparing char* keys.
+ *
+ * @param key key to compare
+ * @param other_key other key to compare
+ * @return TRUE if streq(key, other_key)
+ */
+bool hashtable_equals_str(void *key, void *other_key);
+
+/**
* Class implementing a hash table.
*
* General purpose hash table. This hash table is not synchronized.
@@ -121,7 +155,6 @@ struct hashtable_t {
* Destroys a hash table object.
*/
void (*destroy) (hashtable_t *this);
-
};
/**