include other header files
[IRC.git] / Robust / src / Runtime / DSTM / interface / llookup.h
1 #ifndef _LLOOKUP_H_
2 #define _LLOOKUP_H_
3
4 #include <stdlib.h>
5 #include <stdio.h>
6
7 #define LOADFACTOR 0.75
8 #define HASH_SIZE 100
9
10 typedef struct hashlistnode {
11         unsigned int oid;
12         unsigned int mid;
13         struct hashlistnode *next;
14 } lhashlistnode_t;
15
16 typedef struct hashtable {
17         lhashlistnode_t *table; // points to beginning of hash table
18         unsigned int size;
19         unsigned int numelements;
20         float loadfactor;
21 } lhashtable_t;
22
23 /* Prototypes for hash*/
24 lhashtable_t lhashCreate(unsigned int size, float loadfactor);
25 unsigned int lhashFunction(lhashtable_t table, unsigned int oid);
26 void lhashInsert(lhashtable_t table, unsigned int oid, unsigned int mid);
27 int lhashSearch(lhashtable_t table, unsigned int oid); //returns oid, -1 if not found
28 int lhashRemove(lhashtable_t table, unsigned int oid); //returns -1 if not found
29 void lhashResize(lhashtable_t table, unsigned int newsize);
30 /* end hash */
31
32 #endif
33