diff options
| author | Alexander Pickering <alexandermpickering@gmail.com> | 2018-10-25 12:08:54 -0400 |
|---|---|---|
| committer | Alexander Pickering <alexandermpickering@gmail.com> | 2018-10-25 12:08:54 -0400 |
| commit | b9899c6cbe2f694c9db36e9d4e15c532d10b546f (patch) | |
| tree | 248564d6bd22dd6f11459a51f73a144ae91756fc /hashmap.h | |
| parent | d416a80324225d0c64c5021e74773a2e768de73a (diff) | |
| download | libctemplates-b9899c6cbe2f694c9db36e9d4e15c532d10b546f.tar.gz libctemplates-b9899c6cbe2f694c9db36e9d4e15c532d10b546f.tar.bz2 libctemplates-b9899c6cbe2f694c9db36e9d4e15c532d10b546f.zip | |
Started refactoring code
Added a src/ and build/ directory
Added a include/ directory
Included file is smaller
Diffstat (limited to 'hashmap.h')
| -rw-r--r-- | hashmap.h | 81 |
1 files changed, 0 insertions, 81 deletions
diff --git a/hashmap.h b/hashmap.h deleted file mode 100644 index 16c76dd..0000000 --- a/hashmap.h +++ /dev/null @@ -1,81 +0,0 @@ -/* - * Generic hashmap manipulation functions - * - * Originally by Elliot C Back - http://elliottback.com/wp/hashmap-implementation-in-c/ - * - * Modified by Pete Warden to fix a serious performance problem, support strings as keys - * and removed thread synchronization - http://petewarden.typepad.com - */ -#ifndef __HASHMAP_H__ -#define __HASHMAP_H__ - -#define MAP_MISSING -3 /* No such element */ -#define MAP_FULL -2 /* Hashmap is full */ -#define MAP_OMEM -1 /* Out of Memory */ -#define MAP_OK 0 /* OK */ - -/* - * any_t is a pointer. This allows you to put arbitrary structures in - * the hashmap. - */ -typedef void *any_t; - -/* - * PFany is a pointer to a function that can take two any_t arguments - * and return an integer. Returns status code.. - */ -typedef int (*PFany)(any_t, any_t); - -/* - * map_t is a pointer to an internally maintained data structure. - * Clients of this package do not need to know how hashmaps are - * represented. They see and manipulate only map_t's. - */ -typedef any_t map_t; - -/* - * Return an empty hashmap. Returns NULL if empty. -*/ -extern map_t hashmap_new(); - -/* - * Iteratively call f with argument (item, data) for - * each element data in the hashmap. The function must - * return a map status code. If it returns anything other - * than MAP_OK the traversal is terminated. f must - * not reenter any hashmap functions, or deadlock may arise. - */ -extern int hashmap_iterate(map_t in, PFany f, any_t item); - -/* - * Add an element to the hashmap. Return MAP_OK or MAP_OMEM. - */ -extern int hashmap_put(map_t in, char* key, any_t value); - -/* - * Get an element from the hashmap. Return MAP_OK or MAP_MISSING. - */ -extern int hashmap_get(map_t in, char* key, any_t *arg); - -/* - * Remove an element from the hashmap. Return MAP_OK or MAP_MISSING. - */ -extern int hashmap_remove(map_t in, char* key); - -/* - * Get any element. Return MAP_OK or MAP_MISSING. - * remove - should the element be removed from the hashmap - */ -extern int hashmap_get_one(map_t in, any_t *arg, int remove); - -/* - * Free the hashmap - */ -extern void hashmap_free(map_t in); - -/* - * Get the current size of a hashmap - */ -extern int hashmap_length(map_t in); - -#endif //__HASHMAP_H__ |
