linear_hash_handler.h
Go to the documentation of this file.
1 /******************************************************************************/
35 /******************************************************************************/
36 #if !defined(LINEAR_HASH_HANDLER_H_)
37 #define LINEAR_HASH_HANDLER_H_
38 
39 #if defined(__cplusplus)
40 extern "C" {
41 #endif
42 
43 #include "linear_hash.h"
44 
56 void
59 );
60 
75  ion_key_t key,
76  ion_value_t value
77 );
78 
103 ion_err_t
106  ion_key_type_t key_type,
107  ion_key_size_t key_size,
108  ion_value_size_t value_size,
109  ion_dictionary_size_t dictionary_size,
110  ion_dictionary_compare_t compare,
111  ion_dictionary_handler_t *handler,
113 );
114 
115 ion_err_t
118 );
119 
120 ion_err_t
122  ion_dictionary_handler_t *handler,
126 );
127 
131  ion_key_t key,
132  ion_value_t value
133 );
134 
148  ion_key_t key
149 );
150 
158 ion_err_t
161 );
162 
170 ion_err_t
173 );
174 
192  ion_key_t key,
193  ion_value_t value
194 );
195 
199 );
200 
201 #if defined(__cplusplus)
202 }
203 #endif
204 
205 #endif /* LINEAR_HASH_HANDLER */
void linear_hash_dict_init(ion_dictionary_handler_t *handler)
Registers a linear hash handler to a dictionary instance.
ion_status_t linear_hash_dict_insert(ion_dictionary_t *dictionary, ion_key_t key, ion_value_t value)
Inserts a key and value pair into the dictionary.
enum ION_KEY_TYPE ion_key_type_t
This is the available key types for ION_DB. All types will be based on system defines.
int ion_value_size_t
The size (length) of a dictionary value in bytes.
Definition: kv_system.h:256
unsigned int ion_dictionary_id_t
A type used to identify dictionaries, specifically in the master table.
unsigned int ion_dictionary_size_t
The implementation specific size of the dictionary.
Definition: kv_system.h:264
Struct containing details for opening a dictionary previously created.
#define key(k)
Definition: bpp_tree.c:75
ion_status_t linear_hash_dict_delete(ion_dictionary_t *dictionary, ion_key_t key)
Deletes the key and associated value from the given dictionary instance.
ion_err_t linear_hash_close_dictionary(ion_dictionary_t *dictionary)
char(* ion_dictionary_compare_t)(ion_key_t, ion_key_t, ion_key_size_t)
Function pointer type for dictionary comparison methods.
char ion_err_t
The error type used to store error codes.
Definition: kv_system.h:226
void * ion_key_t
A dictionary key.
Definition: kv_system.h:241
void * ion_value_t
A dictionary value.
Definition: kv_system.h:246
A dictionary contains information regarding an instance of the storage element and the associated han...
Header for a linear hash .
ion_err_t linear_hash_delete_dictionary(ion_dictionary_t *dictionary)
Deletes an instance of a dictionary and its associated data.
ion_err_t linear_hash_open_dictionary(ion_dictionary_handler_t *handler, ion_dictionary_t *dictionary, ion_dictionary_config_info_t *config, ion_dictionary_compare_t compare)
ion_err_t linear_hash_create_dictionary(ion_dictionary_id_t id, ion_key_type_t key_type, ion_key_size_t key_size, ion_value_size_t value_size, ion_dictionary_size_t dictionary_size, ion_dictionary_compare_t compare, ion_dictionary_handler_t *handler, ion_dictionary_t *dictionary)
Creates an instance of a dictionary.
ion_err_t linear_hash_destroy_dictionary(ion_dictionary_id_t id)
Cleans up all files created by the dictionary, and frees any allocated memory, for an already closed ...
ion_status_t linear_hash_dict_update(ion_dictionary_t *dictionary, ion_key_t key, ion_value_t value)
Updates the value stored at a given key.
int ion_key_size_t
The size (length) of a dictionary key in bytes.
Definition: kv_system.h:251
ion_status_t linear_hash_dict_get(ion_dictionary_t *dictionary, ion_key_t key, ion_value_t value)
ion_status_t linear_hash_dict_find(ion_dictionary_t *dictionary)
A dictionary_handler is responsible for dealing with the specific interface for an underlying diction...
A status object that describes the result of a dictionary operation.
Definition: kv_system.h:290