/* * strmap.h * * A close-addressing based string -> string hash map * for CISC 301: Operating Systems */ #ifndef H_STRMAP #define H_STRMAP #include #include typedef struct strmap strmap; typedef size_t (*hash_func) (const char *, size_t); typedef enum { STRMAP_OK, STRMAP_ERR, STRMAP_NOTFOUND } strmap_status; /* * Inserts a new string into a strmap, returning */ strmap_status strmap_put(strmap*, const char*, const char*); strmap_status strmap_get(const strmap*, const char*, const char**); strmap_status strmap_delete(strmap*, const char*); size_t strmap_size(const strmap*); strmap *strmap_create(hash_func); void strmap_destroy(strmap *); #endif