Fixed bugs with VoiceQuality and TCA
[demo.git] / vnfs / VES5.0 / evel / evel-library / code / evel_library / hashtable.h
index 3f4febe..8be17dc 100644 (file)
@@ -1,3 +1,6 @@
+#ifndef HASHTABLE_INCLUDED
+#define HASHTABLE_INCLUDED
+
 /*************************************************************************//**
  *
  * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
  *
  ****************************************************************************/
 
-#ifndef HASHTABLE_INCLUDED
-#define HASHTABLE_INCLUDED
-
 /**************************************************************************//**
  * @file
  * A simple hashtable.
  *
  * @note  No thread protection so you will need to use appropriate
  * synchronization if use spans multiple threads.
- *
- ****************************************************************************/
+*****************************************************************************/
 
 typedef struct entry_s {
        char *key;
@@ -42,4 +41,57 @@ typedef struct hashtable_s {
        struct entry_s **table; 
 } HASHTABLE_T;
 
+/**************************************************************************//**
+ * Hashtable initialization.
+ *
+ * Initialize the list supplied to be empty.
+ *
+ * @param   size  Size of hashtable
+
+ * @returns Hashtable pointer
+******************************************************************************/
+/* Create a new hashtable. */
+HASHTABLE_T *ht_create( size_t size );
+
+/**************************************************************************//**
+ * Hash a string for a particular hash table.
+ *
+ * Initialize the list supplied to be empty.
+ *
+ * @param   hashtable    Pointer to the hashtable
+ * @param   key          String
+
+ * @returns hashvalue
+******************************************************************************/
+size_t ht_hash( HASHTABLE_T *hashtable, char *key );
+
+/**************************************************************************//**
+ * Create a key-value pair.
+ *
+ * @param   key     key string
+ * @param   value   value string
+ *
+ * @returns hashtable entry
+******************************************************************************/
+ENTRY_T *ht_newpair( char *key, void *value );
+
+/**************************************************************************//**
+ * Insert a key-value pair into a hash table.
+ *
+ * @param   key     key string
+ * @param   value   value string
+ *
+ * @returns Nothing
+******************************************************************************/
+void ht_set( HASHTABLE_T *hashtable, char *key, void *value );
+
+/**************************************************************************//**
+ *  Retrieve a key-value pair from a hash table.
+ *
+ * @param   key     key string
+ *
+ * @returns  value string
+******************************************************************************/
+void *ht_get( HASHTABLE_T *hashtable, char *key );
+
 #endif