| nfs-ganesha 1.4 | 
Header for hash functionality. More...
#include <rbt_node.h>#include <rbt_tree.h>#include <pthread.h>#include "HashData.h"#include "log.h"#include "lookup3.h"#include "abstract_mem.h"Go to the source code of this file.
| Classes | |
| struct | hash_param | 
| struct | hash_stat | 
| struct | hash_partition | 
| Represents an individual partition.  More... | |
| struct | hash_table | 
| struct | hash_latch | 
| Defines | |
| #define | TRUE 1 | 
| #define | FALSE 0 | 
| #define | HT_FLAG_NONE 0x0000 | 
| #define | HT_FLAG_CACHE 0x0001 | 
| Typedefs | |
| typedef struct hash_param | hash_parameter_t | 
| typedef uint32_t(* | index_function_t )(struct hash_param *, struct hash_buff *) | 
| typedef uint64_t(* | rbthash_function_t )(struct hash_param *, struct hash_buff *) | 
| typedef int(* | both_function_t )(struct hash_param *, struct hash_buff *, uint32_t *, uint64_t *) | 
| typedef int(* | hash_buff_comparator_t )(struct hash_buff *, struct hash_buff *) | 
| typedef int(* | key_display_function_t )(struct hash_buff *, char *) | 
| typedef int(* | val_display_function_t )(struct hash_buff *, char *) | 
| typedef struct hash_stat | hash_stat_t | 
| typedef struct hash_table | hash_table_t | 
| typedef enum hash_set_how | hash_set_how_t | 
| typedef enum hash_error | hash_error_t | 
| Enumerations | |
| enum | hash_set_how { HASHTABLE_SET_HOW_TEST_ONLY = 1, HASHTABLE_SET_HOW_SET_OVERWRITE = 2, HASHTABLE_SET_HOW_SET_NO_OVERWRITE = 3 } | 
| enum | hash_error { HASHTABLE_SUCCESS = 0, HASHTABLE_UNKNOWN_HASH_TYPE = 1, HASHTABLE_INSERT_MALLOC_ERROR = 2, HASHTABLE_ERROR_NO_SUCH_KEY = 3, HASHTABLE_ERROR_KEY_ALREADY_EXISTS = 4, HASHTABLE_ERROR_INVALID_ARGUMENT = 5, HASHTABLE_ERROR_DELALL_FAIL = 6, HASHTABLE_NOT_DELETED = 7, HASHTABLE_OVERWRITTEN = 8 } | 
| Functions | |
| const char * | hash_table_err_to_str (hash_error_t err) | 
| Return an error string for an error code. | |
| struct hash_table * | HashTable_Init (struct hash_param *hparam) | 
| Initialize a new hash table. | |
| hash_error_t | HashTable_Destroy (struct hash_table *ht, int(*free_func)(struct hash_buff, struct hash_buff)) | 
| Dispose of a hash table. | |
| hash_error_t | HashTable_GetLatch (struct hash_table *ht, struct hash_buff *key, struct hash_buff *val, int may_write, struct hash_latch *latch) | 
| Look up an entry, latching the table. | |
| void | HashTable_ReleaseLatched (struct hash_table *ht, struct hash_latch *latch) | 
| Release lock held on hash table. | |
| hash_error_t | HashTable_SetLatched (struct hash_table *ht, struct hash_buff *key, struct hash_buff *val, struct hash_latch *latch, int overwrite, struct hash_buff *stored_key, struct hash_buff *stored_val) | 
| Set a value in a table following a previous GetLatch. | |
| hash_error_t | HashTable_DeleteLatched (struct hash_table *ht, struct hash_buff *key, struct hash_latch *latch, struct hash_buff *stored_key, struct hash_buff *stored_val) | 
| Delete a value from the store following a previous GetLatch. | |
| hash_error_t | HashTable_Delall (struct hash_table *ht, int(*free_func)(struct hash_buff, struct hash_buff)) | 
| Remove and free all (key,val) couples from the hash store. | |
| void | HashTable_GetStats (struct hash_table *ht, struct hash_stat *hstat) | 
| Get information on the hash table. | |
| size_t | HashTable_GetSize (struct hash_table *ht) | 
| Gets the number of entries in the hashtable. | |
| void | HashTable_Log (log_components_t component, struct hash_table *ht) | 
| Log information about the hashtable. | |
| hash_error_t | HashTable_Test_And_Set (struct hash_table *ht, struct hash_buff *key, struct hash_buff *val, enum hash_set_how how) | 
| hash_error_t | HashTable_GetRef (struct hash_table *ht, struct hash_buff *key, struct hash_buff *val, void(*get_ref)(struct hash_buff *)) | 
| hash_error_t | HashTable_Get_and_Del (struct hash_table *ht, struct hash_buff *key, struct hash_buff *val, struct hash_buff *stored_key) | 
| Look up, return, and remove an entry. | |
| hash_error_t | HashTable_DelRef (struct hash_table *ht, struct hash_buff *key, struct hash_buff *stored_key, struct hash_buff *stored_val, int(*put_ref)(struct hash_buff *)) | 
| hash_error_t | HashTable_DelSafe (hash_table_t *ht, hash_buffer_t *key, hash_buffer_t *val) | 
| Remove an entry if key and value both match. | |
Header for hash functionality.
This file defines the functions and data structures for use with the Ganesha red-black tree based, concurrent hash store.
Definition in file HashTable.h.
| #define FALSE 0 | 
Definition at line 51 of file HashTable.h.
| #define TRUE 1 | 
Definition at line 47 of file HashTable.h.
| typedef enum hash_error hash_error_t | 
| enum hash_error | 
Definition at line 179 of file HashTable.h.
| hash_error_t HashTable_DelRef | ( | struct hash_table * | ht, | 
| struct hash_buff * | key, | ||
| struct hash_buff * | stored_key, | ||
| struct hash_buff * | stored_val, | ||
| int(*)(struct hash_buff *) | put_ref | ||
| ) | 
| hash_error_t HashTable_GetRef | ( | struct hash_table * | ht, | 
| struct hash_buff * | key, | ||
| struct hash_buff * | val, | ||
| void(*)(struct hash_buff *) | get_ref | ||
| ) | 
| hash_error_t HashTable_Test_And_Set | ( | struct hash_table * | ht, | 
| struct hash_buff * | key, | ||
| struct hash_buff * | val, | ||
| enum hash_set_how | how | ||
| ) | 
 1.7.3
 1.7.3