/*
* Copyright (C) 2012
- * Dale Weiler, Wolfgang Bumiller
+ * Dale Weiler
+ * Wolfgang Bumiller
*
* Permission is hereby granted, free of charge, to any person obtaining a copy of
* this software and associated documentation files (the "Software"), to deal in
/*
* hashtable implementation:
*
+ * Note:
+ * This was designed for pointers: you manage the life of the object yourself
+ * if you do use this for non-pointers please be warned that the object may not
+ * be valid if the duration of it exceeds (i.e on stack). So you need to allocate
+ * yourself, or put those in global scope to ensure duration is for the whole
+ * runtime.
+ *
* util_htnew(size) -- to make a new hashtable
* util_htset(table, key, value, sizeof(value)) -- to set something in the table
* util_htget(table, key) -- to get something from the table
* ht foo = util_htnew(1024);
* int data = 100;
* char *test = "hello world\n";
- * util_htset(foo, "foo", (void*)&data, sizeof(int));
- * util_gtset(foo, "bar", (void*)test, strlen(test));
+ * util_htset(foo, "foo", (void*)&data);
+ * util_gtset(foo, "bar", (void*)test);
*
* printf("foo: %d, bar %s",
* *((int *)util_htget(foo, "foo")),
*
* util_htdel(foo);
*/
-hash_table_t *util_htnew(size_t size);
-void util_htset(hash_table_t *ht, const char *key, void *value, size_t size);
-void *util_htget(hash_table_t *ht, const char *key);
-void util_htdel(hash_table_t *ht);
+hash_table_t *util_htnew (size_t size);
+void util_htset (hash_table_t *ht, const char *key, void *value);
+void *util_htget (hash_table_t *ht, const char *key);
+void util_htdel (hash_table_t *ht);
+size_t util_hthash(hash_table_t *ht, const char *key);
+void *util_htgeth(hash_table_t *ht, const char *key, size_t hash);
+void util_htseth(hash_table_t *ht, const char *key, size_t hash, void *value);
/*===================================================================*/
/*=========================== code.c ================================*/
/*===================================================================*/
void ftepp_finish ();
const char *ftepp_get ();
void ftepp_flush ();
+void ftepp_add_define (const char *source, const char *name);
/*===================================================================*/
/*======================= main.c commandline ========================*/