From d6b1f763ff7b39732a8ea91c98af306e47af82ed Mon Sep 17 00:00:00 2001 From: Rob Kendrick Date: Sun, 20 Aug 2006 12:25:41 +0000 Subject: Implement simple reusable write-once hash table for use in new Messages file handling. svn path=/trunk/netsurf/; revision=2871 --- utils/hashtable.h | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 utils/hashtable.h (limited to 'utils/hashtable.h') diff --git a/utils/hashtable.h b/utils/hashtable.h new file mode 100644 index 000000000..8f9df5009 --- /dev/null +++ b/utils/hashtable.h @@ -0,0 +1,30 @@ +/* + * This file is part of NetSurf, http://netsurf.sourceforge.net/ + * Licensed under the GNU General Public License, + * http://www.opensource.org/licenses/gpl-license + * Copyright 2006 Rob Kendrick + */ + +/** Write-Once hash table for string to string mappings */ + +#ifndef _NETSURF_HASH_H_ +#define _NETSURF_HASH_H_ + +struct hash_entry { + char *key; + char *value; + struct hash_entry *next; +}; + +struct hash_table { + unsigned int nchains; + struct hash_entry **chain; +}; + +struct hash_table *hash_create(unsigned int chains); +void hash_destroy(struct hash_table *ht); +void hash_add(struct hash_table *ht, const char *key, const char *value); +const char *hash_get(struct hash_table *ht, const char *key); +unsigned int hash_string_fnv(const char *datum); + +#endif -- cgit v1.2.3