Go to most recent revision | Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
3584 | sourcerer | 1 | /* |
2 | * This file is part of libdom. |
||
3 | * Licensed under the MIT License, |
||
4 | * http://www.opensource.org/licenses/mit-license.php |
||
5 | * Copyright 2006 Rob Kendrick |
||
6 | * Copyright 2009 Bo Yang |
||
7 | */ |
||
8 | |||
9 | #ifndef dom_utils_hashtable_h_ |
||
10 | #define dom_utils_hashtable_h_ |
||
11 | |||
12 | #include |
||
13 | #include |
||
14 | |||
15 | typedef struct dom_hash_table dom_hash_table; |
||
16 | |||
17 | typedef struct dom_hash_vtable { |
||
18 | uint32_t (*hash)(void *key, void *pw); |
||
19 | void *(*clone_key)(void *key, void *pw); |
||
20 | void (*destroy_key)(void *key, void *pw); |
||
21 | void *(*clone_value)(void *value, void *pw); |
||
22 | void (*destroy_value)(void *value, void *pw); |
||
23 | bool (*key_isequal)(void *key1, void *key2, void *pw); |
||
24 | } dom_hash_vtable; |
||
25 | |||
26 | dom_hash_table *_dom_hash_create(unsigned int chains, |
||
27 | const dom_hash_vtable *vtable, void *pw); |
||
28 | dom_hash_table *_dom_hash_clone(dom_hash_table *ht); |
||
29 | void _dom_hash_destroy(dom_hash_table *ht); |
||
30 | bool _dom_hash_add(dom_hash_table *ht, void *key, void *value, |
||
31 | bool replace); |
||
32 | void *_dom_hash_get(dom_hash_table *ht, void *key); |
||
33 | void *_dom_hash_del(dom_hash_table *ht, void *key); |
||
34 | void *_dom_hash_iterate(dom_hash_table *ht, unsigned long int *c1, unsigned long int **c2); |
||
35 | uint32_t _dom_hash_get_length(dom_hash_table *ht); |
||
36 | |||
37 | #endif |