C Interface

C Interface

typedef int (* HashTable_CmpFn)(void *, void *);

typedef int (* HashTable_HashFn)(void *);

typedef void (* HashTable_DupKeyFn)(void *, void *);

typedef struct HashTable HashTable;

typedef struct HashTable_Entry HashTable_Entry;

typedef struct HashTable_Itr {
  HashTable             *ht;
  int                   bin;
  HashTable_Entry       *last;
  HashTable_Entry       *entry;
} HashTable_Itr;

Flag HashTable_all_create(int id, int snapshotId,
                          int nBins, int keySize, int dataSize,
                          HashTable_CmpFn cmpFn, HashTable_HashFn hashFn,
                          Flag *flagPtr, Counter *ctr);

Flag HashTable_all_destroy(int id, Counter *ctr);

Flag HashTable_dupKeyFn(int id, HashTable_DupKeyFn dupKeyFn);

Flag HashTable_insert(int id, void *key, void *data, 
                      Flag *flagPtr, Counter *ctr);

Flag HashTable_lookup(int id, void *key, void *data,
                      Flag *flagPtr, Counter *ctr);

Flag HashTable_delete(int id, void *key,
                      Flag *flagPtr, Counter *ctr);

Flag HashTable_itrInit(int id, HashTable_Itr *itr);

Flag HashTable_itrNext(HashTable_Itr *itr, 
                       void **keyPtr, void **dataPtr);

Flag HashTable_itrDelete(HashTable_Itr *itr);

Flag HashTable_clear(int id);

Flag HashTable_count(int id, int *countPtr);



Chih-Po Wen
Wed Sep 13 23:57:28 PDT 1995