oscam-2.26.01-11942-802-wit.../oscam-hashtable.c

77 lines
1.7 KiB
C

#include "tommyDS_hashlin/tommychain.h"
#include "tommyDS_hashlin/tommyhash.h"
#include "tommyDS_hashlin/tommyhashlin.h"
#include "tommyDS_hashlin/tommylist.h"
#include "tommyDS_hashlin/tommytypes.h"
#include "tommyDS_hashlin/tommyhash.c"
#include "tommyDS_hashlin/tommyhashlin.c"
#include "tommyDS_hashlin/tommylist.c"
void init_hash_table(void *ht, void *ll)
{
tommy_hashlin_init(ht);
tommy_list_init(ll);
}
void add_hash_table(void *ht, void *ht_node, void *ll, void *ll_node, void *obj, void *key, int key_len)
{
tommy_hashlin_insert(ht, ht_node, obj, tommy_hash_u32(0, key, key_len));
tommy_list_insert_tail(ll, ll_node, obj);
}
void *find_hash_table(void *ht, void *key, int key_len, void *compare)
{
return tommy_hashlin_search(ht, compare, key, tommy_hash_u32(0, key, key_len));
}
void *search_remove_elem_hash_table(void *ht, void *key, int key_len, void *compare)
{
return tommy_hashlin_remove(ht, compare, key, tommy_hash_u32(0, key, key_len));
}
void remove_elem_hash_table(void *ht, void *ht_node)
{
return tommy_hashlin_remove_existing(ht, ht_node);
}
int count_hash_table(void *ht)
{
return tommy_hashlin_count(ht);
}
void deinitialize_hash_table(void *ht)
{
tommy_hashlin_done(ht);
}
void sort_list(void *ll, void *cmp)
{
tommy_list_sort (ll, cmp);
}
void remove_elem_list(void *ll, void *ll_node)
{
return tommy_list_remove_existing(ll, ll_node);
}
void *get_first_node_list(void *ll)
{
return tommy_list_head(ll);
}
void *get_first_elem_list(void *ll)
{
if (tommy_list_head(ll))
return tommy_list_head(ll)->data;
else
return NULL;
}
void *get_data_from_node(void *node)
{
if (node)
return ((tommy_node *)node)->data;
else
return NULL;
}