RNAlib-2.5.1
hash_tables.h
Go to the documentation of this file.
1#ifndef VIENNA_RNA_PACKAGE_HASH_UTIL_H
2#define VIENNA_RNA_PACKAGE_HASH_UTIL_H
3
4/* Taken from the barriers tool and modified by GE. */
5
35typedef struct vrna_hash_table_s *vrna_hash_table_t;
36
37
46 void *y);
47
48
56typedef unsigned int (vrna_callback_ht_hash_function)(void *x,
57 unsigned long hashtable_size);
58
59
66typedef int (vrna_callback_ht_free_entry)(void *x);
67
68
95vrna_ht_init(unsigned int b,
96 vrna_callback_ht_compare_entries *compare_function,
97 vrna_callback_ht_hash_function *hash_function,
98 vrna_callback_ht_free_entry *free_hash_entry);
99
100
107unsigned long
109
110
117unsigned long
118vrna_ht_collisions(struct vrna_hash_table_s *ht);
119
120
135void *
137 void *x);
138
139
155int
157 void *x);
158
159
171void
173 void *x);
174
175
187void
189
190
201void
203
204
205/* End of abstract interface */
217typedef struct {
218 char *structure;
219 float energy;
221
222
236int
238 void *y);
239
240
255unsigned int
257 unsigned long hashtable_size);
258
259
271int vrna_ht_db_free_entry(void *hash_entry);
272
273
274/* End of dot-bracket interface */
281#endif
char * structure
Definition: hash_tables.h:218
float energy
Definition: hash_tables.h:219
void vrna_ht_remove(vrna_hash_table_t ht, void *x)
Remove an object from the hash table.
unsigned long vrna_ht_size(vrna_hash_table_t ht)
Get the size of the hash table.
vrna_hash_table_t vrna_ht_init(unsigned int b, vrna_callback_ht_compare_entries *compare_function, vrna_callback_ht_hash_function *hash_function, vrna_callback_ht_free_entry *free_hash_entry)
Get an initialized hash table.
int() vrna_callback_ht_free_entry(void *x)
Callback function to free a hash table entry.
Definition: hash_tables.h:66
void vrna_ht_free(vrna_hash_table_t ht)
Free all memory occupied by the hash table.
int vrna_ht_insert(vrna_hash_table_t ht, void *x)
Insert an object into a hash table.
unsigned int() vrna_callback_ht_hash_function(void *x, unsigned long hashtable_size)
Callback function to generate a hash key, i.e. hash function.
Definition: hash_tables.h:56
unsigned long vrna_ht_collisions(struct vrna_hash_table_s *ht)
Get the number of collisions in the hash table.
void * vrna_ht_get(vrna_hash_table_t ht, void *x)
Get an element from the hash table.
void vrna_ht_clear(vrna_hash_table_t ht)
Clear the hash table.
struct vrna_hash_table_s * vrna_hash_table_t
A hash table object.
Definition: hash_tables.h:35
int vrna_ht_db_free_entry(void *hash_entry)
Default function to free memory occupied by a hash entry.
int vrna_ht_db_comp(void *x, void *y)
Default hash table entry comparison.
int() vrna_callback_ht_compare_entries(void *x, void *y)
Callback function to compare two hash table entries.
Definition: hash_tables.h:45
unsigned int vrna_ht_db_hash_func(void *x, unsigned long hashtable_size)
Default hash function.
Default hash table entry.
Definition: hash_tables.h:217