Mercurial > repo
diff src/ploki/hash.h @ 4223:ac0403686959
<oerjan> rm -rf src/ploki; mv ploki src
author | HackBot |
---|---|
date | Fri, 20 Dec 2013 22:18:50 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/ploki/hash.h Fri Dec 20 22:18:50 2013 +0000 @@ -0,0 +1,47 @@ +#ifndef HASH_H_ +#define HASH_H_ + +#include <stddef.h> + +typedef struct { + size_t entries, size, newsize; + size_t brk; + size_t seed; + size_t iter; + struct h_node *iterptr; + struct h_node **table; + size_t (*hash)(const void *, size_t); + int (*cmp)(const void *, const void *); + void (*delk)(void *); + void (*delv)(void *); +} Hash; + +enum { + H_OK, + H_EXIST, + H_NOENT +}; + +void h_init( + Hash *, + size_t (*)(const void *, size_t), + int (*)(const void *, const void *), + void (*)(void *), + void (*)(void *) + ); +void h_end(Hash *); +int h_get(Hash *, const void *, void **); +int h_del(Hash *, const void *); +#if 0 +void h_push(Hash *, void *, void *); +#endif +int h_put(Hash *, void *, void *, int); +void h_reset(Hash *); +int h_nextkv(Hash *, void **, void **); + +#if 0 +size_t h_entries(const Hash *); +#define h_entries(h) ((h)->entries + 0) +#endif + +#endif /* HASH_H_ */