Windows NT 4.0 source code leak
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

68 lines
1.8 KiB

/*
Enhanced NCSA Mosaic from Spyglass
"Guitar"
Copyright 1994 Spyglass, Inc.
All Rights Reserved
Author(s):
Eric W. Sink [email protected]
*/
#ifndef HASH_H
#define HASH_H
#define INIT_BUCKETS 127
#define INIT_ENTRY_SPACE 64
struct hash_entry
{
char *psz1;
char *psz2;
void *data;
int next;
};
struct hash_bucket
{
int head;
};
struct hash_table
{
struct hash_entry *entry;
int entry_size;
int entry_space;
struct hash_bucket *table;
int table_size;
void (*pFreeFunc)(void *);
};
int Hash_Init(struct hash_table *hash);
void Hash_SetFreeFunc( struct hash_table *hash, void (*pFreeFunc)(void *) );
void Hash_EnumerateContents(struct hash_table *hash, void (*pEnumFunc)(void *,char *, char *,void *), void *refData );
int Hash_FreeContents(struct hash_table *hash);
int Hash_Find(struct hash_table *hash, const char *s, char **s2, void **data);
int Hash_FindByData(struct hash_table *hash, char **s, char **s2, void *data);
int Hash_Add(struct hash_table *hash, const char *s1, const char *s2, void *data);
int Hash_Count(struct hash_table *hash);
int Hash_GetIndexedEntry(struct hash_table *hash, int entry_ndx, char **s1, char **s2, void **data);
int Hash_DeleteIndexedEntry(struct hash_table *hash, int ndx);
int Hash_SortByData(struct hash_table *hash, BOOL bAscending);
INLINE Hash_SortByDataDescending(struct hash_table *hash)
{
return Hash_SortByData(hash, FALSE);
}
INLINE Hash_SortByDataAscending(struct hash_table *hash)
{
return Hash_SortByData(hash, TRUE);
}
struct hash_table *Hash_Create(void);
int Hash_Destroy(struct hash_table *hash);
int Hash_SetData(struct hash_table *hash, int entry_ndx, void *data);
int Hash_SetString2(struct hash_table *hash, int entry_ndx, char *s2);
int Hash_FindOrAdd(struct hash_table *hash, const char *s1, const char *s2, void *data);
#endif /* HASH_H */