31 lines
724 B
C
31 lines
724 B
C
#include "ls.h"
|
|
#include "types.h"
|
|
|
|
typedef void (*HtKvFreeFunc)(void *);
|
|
|
|
/** ht **/
|
|
typedef struct ht_entry_t {
|
|
SdbListIter *iter;
|
|
ut32 hash;
|
|
void *data;
|
|
} SdbHashEntry;
|
|
|
|
typedef struct ht_t {
|
|
SdbList *list;
|
|
SdbHashEntry *table;
|
|
ut32 size;
|
|
ut32 rehash;
|
|
ut32 max_entries;
|
|
ut32 size_index;
|
|
ut32 entries;
|
|
ut32 deleted_entries;
|
|
} SdbHash;
|
|
|
|
SdbHash* ht_new(SdbListFree f);
|
|
void ht_free(SdbHash *ht);
|
|
//void ht_set(SdbHash *ht, ut32 hash, void *data);
|
|
SdbHashEntry* ht_search(SdbHash *ht, ut32 hash);
|
|
void *ht_lookup(SdbHash *ht, ut32 hash);
|
|
void ht_set(SdbHash *ht, ut32 hash, void *data);
|
|
int ht_insert(SdbHash *ht, ut32 hash, void *data, SdbListIter *iter);
|
|
void ht_delete_entry(SdbHash *ht, SdbHashEntry *entry);
|