globus_common  17.11
globus_hashtable.h
Go to the documentation of this file.
1 
7 #ifndef GLOBUS_HASHTABLE_H
8 #define GLOBUS_HASHTABLE_H
9 
20 #include "globus_types.h"
21 #include "globus_list.h"
22 
23 #ifdef __cplusplus
24 extern "C" {
25 #endif
26 
40 typedef int
42  void * key,
43  int limit);
44 
52 typedef int
54  void * key1,
55  void * key2);
56 
61 typedef void
63  void ** dest_key,
64  void ** dest_datum,
65  void * src_key,
66  void * src_datum);
67 
68 
73 typedef void
75  void * datum);
76 
77 typedef struct globus_l_hashtable_s * globus_hashtable_t;
78 
79 int
81  globus_hashtable_t * table,
82  int size,
85 
86 int
87 globus_hashtable_copy(
88  globus_hashtable_t * dest_table,
89  globus_hashtable_t * src_table,
91 
92 void *
94  globus_hashtable_t * table,
95  void * key);
96 
97 int
99  globus_hashtable_t * table,
100  void * key,
101  void * datum);
102 
103 void *
105  globus_hashtable_t * table,
106  void * key,
107  void * datum);
108 
109 void *
111  globus_hashtable_t * table,
112  void * key);
113 
114 int
116  globus_hashtable_t * table,
117  globus_list_t ** list);
118 
121  globus_hashtable_t * table);
122 
123 int
125  globus_hashtable_t * table);
126 
141 void *
143  globus_hashtable_t * table);
144 
145 void *
147  globus_hashtable_t * table);
148 
149 void *
151  globus_hashtable_t * table);
152 
153 void *
155  globus_hashtable_t * table);
156 
157 int
159  globus_hashtable_t * table);
160 
161 void
162 globus_hashtable_destroy_all(
163  globus_hashtable_t * table,
165 
166 int
168  void * string,
169  int limit);
170 
171 int
173  void * string1,
174  void * string2);
175 
176 int
178  void * voidp,
179  int limit);
180 
181 int
183  void * voidp1,
184  void * voidp2);
185 
186 int
188  void * integer,
189  int limit);
190 
191 int
193  void * integer1,
194  void * integer2);
195 
196 int
197 globus_hashtable_ulong_hash(
198  void * integer,
199  int limit);
200 
201 int
202 globus_hashtable_ulong_keyeq(
203  void * integer1,
204  void * integer2);
205 
206 #ifdef __cplusplus
207 }
208 #endif
209 
210 #endif /* GLOBUS_HASHTABLE_H */
Linked List.
Common Primitive Types.
int globus_bool_t
Boolean type.
Definition: globus_types.h:78
void * globus_hashtable_prev(globus_hashtable_t *table)
Decrement hash table iterator.
Definition: globus_hashtable.c:681
void * globus_hashtable_first(globus_hashtable_t *table)
Initialize iterator to first hash table entry.
Definition: globus_hashtable.c:597
void * globus_hashtable_last(globus_hashtable_t *table)
Initialize iterator to last hash table entry.
Definition: globus_hashtable.c:654
void * globus_hashtable_next(globus_hashtable_t *table)
Increment hash table iterator.
Definition: globus_hashtable.c:624
int globus_hashtable_voidp_keyeq(void *voidp1, void *voidp2)
Void pointer equality predicate.
Definition: globus_hashtable.c:852
void * globus_hashtable_remove(globus_hashtable_t *table, void *key)
Remove a datum from a hash table.
Definition: globus_hashtable.c:448
int globus_hashtable_voidp_hash(void *voidp, int limit)
Void pointer hash function.
Definition: globus_hashtable.c:834
int(* globus_hashtable_hash_func_t)(void *key, int limit)
Definition: globus_hashtable.h:41
void * globus_hashtable_lookup(globus_hashtable_t *table, void *key)
Look up a datum in a hash table.
Definition: globus_hashtable.c:408
int globus_hashtable_int_keyeq(void *integer1, void *integer2)
Integer equality predicate.
Definition: globus_hashtable.c:883
int globus_hashtable_int_hash(void *integer, int limit)
Integer hash function.
Definition: globus_hashtable.c:871
globus_bool_t globus_hashtable_empty(globus_hashtable_t *table)
Test hash table emptiness.
Definition: globus_hashtable.c:565
int globus_hashtable_insert(globus_hashtable_t *table, void *key, void *datum)
Insert a datum into a hash table.
Definition: globus_hashtable.c:282
int globus_hashtable_destroy(globus_hashtable_t *table)
Destroy a hash tableDestroys a hashtable representation, releasing any resources used to represent th...
Definition: globus_hashtable.c:716
int(* globus_hashtable_keyeq_func_t)(void *key1, void *key2)
Definition: globus_hashtable.h:53
int globus_hashtable_string_keyeq(void *string1, void *string2)
Null-terminated string equality predicate.
Definition: globus_hashtable.c:810
void * globus_hashtable_update(globus_hashtable_t *table, void *key, void *datum)
Update a hash table mapping.
Definition: globus_hashtable.c:362
int globus_hashtable_to_list(globus_hashtable_t *table, globus_list_t **list)
Create a list of all datums in a hash table.
Definition: globus_hashtable.c:529
void(* globus_hashtable_copy_func_t)(void **dest_key, void **dest_datum, void *src_key, void *src_datum)
Definition: globus_hashtable.h:62
int globus_hashtable_init(globus_hashtable_t *table, int size, globus_hashtable_hash_func_t hash_func, globus_hashtable_keyeq_func_t keyeq_func)
Initialize a hash table.
Definition: globus_hashtable.c:68
int globus_hashtable_string_hash(void *string, int limit)
Null-terminated string hash function.
Definition: globus_hashtable.c:788
int globus_hashtable_size(globus_hashtable_t *table)
Hash table size.
Definition: globus_hashtable.c:578
void(* globus_hashtable_destructor_func_t)(void *datum)
Definition: globus_hashtable.h:74
List data type.
Definition: globus_list.h:29