summaryrefslogtreecommitdiff
path: root/src/libstrongswan/collections/hashtable.h
diff options
context:
space:
mode:
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);
-
};
/**