summaryrefslogtreecommitdiff
path: root/dns_hash_array.h
blob: d37bdaf050f942741027257b92043ea50644f3f8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#ifndef __HASH_ARRAY_H__
#define __HASH_ARRAY_H__

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "dns_hash_table.h"

struct HashTableArrayNode
{
	struct HashTable *hash_table;
};

struct HashTableArray
{
	struct HashTableArrayNode *nodes;
	int nnodes;
	int size;
};

struct HashTableArray * hash_table_array_new (int size);

struct HashTable* hash_table_array_node_new (HashFunc hash_func,CompareFunc key_compare_funcs);

void hash_table_array_delete_node (struct HashTableArray *hash_table_array, int location);

void hash_table_array_insert_node (struct HashTableArray *hash_table_array,int location,HashFunc hash_func,CompareFunc key_compare_func);

void hash_table_array_destory(struct HashTableArray *hash_table_array,HFunc hfunc);

int hash_table_array_init(struct HashTableArray * hash_table_array,HashFunc hash_func,CompareFunc key_compare_funcs);

void hash_table_array_print(struct HashTableArray * hash_table_array,HFunc hfunc);


#endif