24 #ifndef _MEMORY_HASH_H_ 25 #define _MEMORY_HASH_H_ 36 #define MHT2STR_COLL(id, str, size) \ 37 (lang_get_collation (id))->mht2str ((lang_get_collation (id)), (str), (size)) 57 unsigned int (*hash_func) (
const void *
key,
unsigned int htsize);
58 int (*cmp_func) (
const void *key1,
const void *key2);
79 extern unsigned int mht_1strhash (
const void *
key,
const unsigned int ht_size);
80 extern unsigned int mht_2strhash (
const void *
key,
const unsigned int ht_size);
81 extern unsigned int mht_3strhash (
const void *
key,
const unsigned int ht_size);
82 extern unsigned int mht_4strhash (
const void *
key,
const unsigned int ht_size);
83 extern unsigned int mht_5strhash (
const void *
key,
const unsigned int ht_size);
84 extern unsigned int mht_numhash (
const void *
key,
const unsigned int ht_size);
87 extern unsigned int mht_ptrhash (
const void *ptr,
const unsigned int ht_size);
88 extern unsigned int mht_valhash (
const void *
key,
const unsigned int ht_size);
97 unsigned int (*hash_func) (
const void *
key,
unsigned int ht_size),
98 int (*cmp_func) (
const void *key1,
const void *key2));
100 extern int mht_clear (
MHT_TABLE * ht,
int (*rem_func) (
const void *key,
void *
data,
void *args),
void *func_args);
107 #if defined (ENABLE_UNUSED_FUNCTION) 108 extern const void *mht_put2 (
MHT_TABLE * ht,
const void *key,
void *
data);
109 extern const void *mht_put2_data (
MHT_TABLE * ht,
const void *key,
void *
data);
112 extern int mht_rem (
MHT_TABLE * ht,
const void *key,
int (*rem_func) (
const void *key,
void *
data,
void *args),
115 int (*rem_func) (
const void *key,
void *data,
void *args),
void *func_args);
116 extern int mht_map (
const MHT_TABLE * ht,
int (*map_func) (
const void *key,
void *data,
void *args),
void *func_args);
118 int (*map_func) (
THREAD_ENTRY * thread_p,
void *data,
void *args),
void *func_args);
122 int (*print_func) (
THREAD_ENTRY * thread_p, FILE * fp,
const void *key,
void *data,
void *args),
149 unsigned int (*hash_func) (
const void *
key,
unsigned int htsize);
150 int (*cmp_func) (
const void *key1,
const void *key2);
165 unsigned int (*hash_func) (
const void *key,
unsigned int ht_size),
166 int (*cmp_func) (
const void *key1,
const void *key2));
170 int (*print_func) (
THREAD_ENTRY * thread_p, FILE * fp,
const void *data,
void *args),
const void * mht_put_if_not_exists(MHT_TABLE *ht, const void *key, void *data)
unsigned int mht_1strhash(const void *key, const unsigned int ht_size)
unsigned int nprealloc_entries
void mht_destroy(MHT_TABLE *ht)
int mht_compare_dbvalues_are_equal(const void *key1, const void *key2)
int mht_compare_ptrs_are_equal(const void *key1, const void *key2)
void * mht_get2(const MHT_TABLE *ht, const void *key, void **last)
unsigned int mht_2str_pseudo_key(const void *key, int key_size)
unsigned int mht_2strhash(const void *key, const unsigned int ht_size)
unsigned int nprealloc_entries
unsigned int mht_3strhash(const void *key, const unsigned int ht_size)
int mht_compare_ints_are_equal(const void *key1, const void *key2)
unsigned int mht_4strhash(const void *key, const unsigned int ht_size)
int mht_compare_logpageids_are_equal(const void *key1, const void *key2)
int mht_clear_hls(MHT_HLS_TABLE *ht, int(*rem_func)(const void *key, void *data, void *args), void *func_args)
int mht_adjust_lru_list(MHT_TABLE *ht, HENTRY_PTR hentry)
const void * mht_put_hls(MHT_HLS_TABLE *ht, const void *key, void *data)
int mht_rem(MHT_TABLE *ht, const void *key, int(*rem_func)(const void *key, void *data, void *args), void *func_args)
MHT_HLS_TABLE * mht_create_hls(const char *name, int est_size, unsigned int(*hash_func)(const void *key, unsigned int ht_size), int(*cmp_func)(const void *key1, const void *key2))
void * mht_get(MHT_TABLE *ht, const void *key)
void mht_destroy_hls(MHT_HLS_TABLE *ht)
const void * mht_put_data(MHT_TABLE *ht, const void *key, void *data)
unsigned int mht_1strlowerhash(const void *key, const unsigned int ht_size)
int mht_clear(MHT_TABLE *ht, int(*rem_func)(const void *key, void *data, void *args), void *func_args)
MHT_TABLE * mht_create(const char *name, int est_size, unsigned int(*hash_func)(const void *key, unsigned int ht_size), int(*cmp_func)(const void *key1, const void *key2))
int mht_dump(THREAD_ENTRY *thread_p, FILE *out_fp, const MHT_TABLE *ht, const int print_id_opt, int(*print_func)(THREAD_ENTRY *thread_p, FILE *fp, const void *key, void *data, void *args), void *func_args)
unsigned int mht_5strhash(const void *key, const unsigned int ht_size)
HENTRY_PTR prealloc_entries
unsigned int mht_valhash(const void *key, const unsigned int ht_size)
int mht_dump_hls(THREAD_ENTRY *thread_p, FILE *out_fp, const MHT_HLS_TABLE *ht, const int print_id_opt, int(*print_func)(THREAD_ENTRY *thread_p, FILE *fp, const void *data, void *args), void *func_args)
unsigned int mht_count(const MHT_TABLE *ht)
unsigned int mht_numhash(const void *key, const unsigned int ht_size)
struct hentry * HENTRY_PTR
const void * mht_put(MHT_TABLE *ht, const void *key, void *data)
int mht_compare_identifiers_equal(const void *key1, const void *key2)
unsigned int mht_get_hash_number(const int ht_size, const DB_VALUE *val)
unsigned int mht_ptrhash(const void *ptr, const unsigned int ht_size)
const void * mht_put_new(MHT_TABLE *ht, const void *key, void *data)
HENTRY_HLS_PTR prealloc_entries
int mht_rem2(MHT_TABLE *ht, const void *key, const void *data, int(*rem_func)(const void *key, void *data, void *args), void *func_args)
struct hentry_hls * HENTRY_HLS_PTR
int mht_map(const MHT_TABLE *ht, int(*map_func)(const void *key, void *data, void *args), void *func_args)
int mht_compare_strings_are_equal(const void *key1, const void *key2)
const void * mht_put2_new(MHT_TABLE *ht, const void *key, void *data)
int mht_map_no_key(THREAD_ENTRY *thread_p, const MHT_TABLE *ht, int(*map_func)(THREAD_ENTRY *thread_p, void *data, void *args), void *func_args)
void * mht_get_hls(const MHT_HLS_TABLE *ht, const void *key, void **last)