DragonFly On-Line Manual Pages
encap_hash_new(3) C Library Calls encap_hash_new(3)
NAME
encap_hash_new, encap_hash_free, encap_hash_next, encap_hash_prev,
encap_hash_getkey, encap_hash_search, encap_hash_add, encap_hash_del -
hash table routines
SYNOPSIS
#include <encap.h>
encap_hash_t *encap_hash_new(int num, int (*hashfunc)());
void encap_hash_free(encap_hash_t *h, void (*freefunc)());
int encap_hash_next(encap_hash_t *h, encap_hashptr_t *hp);
int encap_hash_prev(encap_hash_t *h, encap_hashptr_t *hp);
int encap_hash_search(encap_hash_t *h, encap_hashptr_t *hp, void *data,
int (*matchfunc)());
int encap_hash_getkey(encap_hash_t *h, encap_hashptr_t *hp, void *data,
int (*matchfunc)());
int encap_hash_add(encap_hash_t *h, void *data);
int encap_hash_del(encap_hash_t *h, encap_hashptr_t *hp);
DESCRIPTION
The encap_hash_new() function creates a new hash with num buckets and
using hash function pointed to by hashfunc. If hashfunc is NULL, a
default hash function designed for 7-bit ASCII strings is used.
The encap_hash_free() function deallocates all memory associated with
the hash structure h. If freefunc is not NULL, it is called to free
memory associated with each node in the hash.
The encap_hash_next() and encap_hash_prev() functions are used to
iterate through the hash. The encap_hashptr_t structure has two
fields: bucket, which indicates the current bucket in the hash, and
node, which is a pointer to the current node in the current bucket. To
start at the beginning or end of the hash, the caller should initialize
hp.bucket to -1 and hp.node to NULL.
The encap_hash_search() function searches iteratively through the hash
h until it finds a node whose contents match data using the matching
function matchfunc. Searching begins at the location pointed to by hp.
The encap_hash_getkey() function uses the hash function associated with
h to determine which bucket data should be in, and searches only that
bucket for a matching node using matchfunc. Searching begins at the
location pointed to by hp.
The encap_hash_add() function adds data into hash h.
The encap_hash_del() function removes the node referenced by hp.
RETURN VALUE
The encap_hash_new() function returns a pointer to the new hash
structure, or NULL on error.
The encap_hash_next() and encap_hash_prev() functions return 1 when
valid data is returned, and 0 at the end of the hash.
The encap_hash_getkey() and encap_hash_search() functions return 1 when
a match is found, or 0 otherwise.
The encap_hash_add() function returns 0 on success, or -1 on error (and
sets errno).
The encap_hash_del() function returns 0 on success, or -1 on error (and
sets errno).
SEE ALSO
encap_list_new(3)
University of Illinois Jan 2000 encap_hash_new(3)