rizin/libr/include/sdb/ht.h
2014-03-26 04:16:03 +01:00

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);