diff options
Diffstat (limited to 'vnfs/VES5.0/evel/evel-library/code/evel_library/hashtable.h')
-rw-r--r-- | vnfs/VES5.0/evel/evel-library/code/evel_library/hashtable.h | 62 |
1 files changed, 57 insertions, 5 deletions
diff --git a/vnfs/VES5.0/evel/evel-library/code/evel_library/hashtable.h b/vnfs/VES5.0/evel/evel-library/code/evel_library/hashtable.h index 3f4febef..8be17dc1 100644 --- a/vnfs/VES5.0/evel/evel-library/code/evel_library/hashtable.h +++ b/vnfs/VES5.0/evel/evel-library/code/evel_library/hashtable.h @@ -1,3 +1,6 @@ +#ifndef HASHTABLE_INCLUDED +#define HASHTABLE_INCLUDED + /*************************************************************************//** * * Copyright © 2017 AT&T Intellectual Property. All rights reserved. @@ -15,17 +18,13 @@ * ****************************************************************************/ -#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 |