55 lines
1.7 KiB
Groff
55 lines
1.7 KiB
Groff
.TH gpHash 1 "" "General Purpose Character String Hash Library"
|
|
.ad b
|
|
.SH VERSION $Id$
|
|
.SH NAME
|
|
gpHash.c - General Purpose Hash Library
|
|
.SH SYNOPSIS
|
|
.nf
|
|
|
|
gphInitPvt - Initialize
|
|
gphFind - Find an element taht has been hashed
|
|
gphAdd - Add a new entry
|
|
gphDelete - Delete an entry
|
|
gphFreeMem - Free all memory allocated by gpHash
|
|
gphDump - Dump current members
|
|
|
|
|
|
typedef struct{
|
|
ELLNODE node;
|
|
char *name; /*address of name placed in directory*/
|
|
void *pvtid; /*private name for subsystem user*/
|
|
void *userPvt; /*private for user*/
|
|
} GPHENTRY;
|
|
|
|
void gphInitPvt(void **ppvt);
|
|
GPHENTRY *gphFind(void *pvt,char *name,void *pvtid);
|
|
GPHENTRY *gphAdd(void *pvt,char *name,void *pvtid);
|
|
void gphDelete(void *pvt,char *name,void *pvtid);
|
|
void gphFreeMem(void *pvt);
|
|
void gphDump(void *pvt);
|
|
|
|
|
|
where :
|
|
|
|
pvt - For private use by library. Caller must provide a "void *pvt"
|
|
name - The character string that will be hashed and added to table
|
|
pvtid - The name plus value of this pointer constitute unique entry
|
|
|
|
.fi
|
|
.SH DESCRIPTION
|
|
This library provides a general purpose directory of names that is accessed
|
|
via a hash table. The hash table contains 256 entries. Each entry is a list
|
|
of members that hash to the same value. The user can maintain seperate directories
|
|
via the same table by having a different pvtid for each directory.
|
|
.SH RETURNS
|
|
.nf
|
|
gphFind returns the address of the GPHENTRY describing the entry or NULL if name was not found.
|
|
gphAdd returns the address of the new GPHENTRY describing the entry or NULL if name was already
|
|
present.
|
|
.SH INCLUDES
|
|
gpHash.h
|
|
.SH REFERENCE
|
|
Fast Hashing of Variable Length Text Strings, Peter K. Pearson,
|
|
Communications of the ACM, June 1990
|
|
.fi
|