/* ***************************************************************************** * * $RCSfile: hashutil.h,v $ * $Date: 1999/05/18 18:35:55 $ * $Source: /home/richard/Xml/RCS/hashutil.h,v $ * $Revision: 1.3 $ * $Author: richard $ * ***************************************************************************** * * Copyright 1998, Brown University and Richard Goerwitz * ***************************************************************************** * * Header file for hashutil.c, which contains a set of stupid, but * nevertheless useful, hashing routines. * ***************************************************************************** */ #ifndef HASHUTIL_H_INCLUDED #define HASHUTIL_H_INCLUDED #include "general.h" struct rg_htable_item { char *key; my_wchar_t *uni_key; void *data; }; struct rg_htable_bucket { size_t len; size_t buflen; struct rg_htable_item *items; }; struct rg_htable { unsigned int no_items; unsigned int len; struct rg_htable_bucket *buckets; }; extern struct rg_htable *rg_create_htable (unsigned int); extern void rg_free_htable (struct rg_htable *); extern void rg_free_htable_and_data (struct rg_htable *); extern struct rg_htable_item *rg_add_item (struct rg_htable *, struct rg_htable_item); extern struct rg_htable_item *rg_delete_item (struct rg_htable *, struct rg_htable_item); extern struct rg_htable_item *rg_get_htable_items (struct rg_htable *); extern struct rg_htable_item *rg_find_item (struct rg_htable *, struct rg_htable_item); #endif /* HASHUTIL_H_INCLUDED */