X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=vnfs%2FVES5.0%2Fevel%2Fevel-library%2Fcode%2Fevel_library%2Fhashtable.h;h=8be17dc109d702b85c7795eabc9f79820e2ead0c;hb=65c3a02cf2b1083debdd087fef9a656d3e3c6cea;hp=3f4febeff5e4636daeb30e45eba4fd384db92a34;hpb=1a92cb5c28ba17b4a57e4c02ad7223119c810c4a;p=demo.git 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