121 #ifndef USE_DYNAMIC_MAPS
143 static HTABLE *mkmap_open_hash;
149 static void mkmap_open_init(
void)
151 static const char myname[] =
"mkmap_open_init";
154 if (mkmap_open_hash != 0)
155 msg_panic(
"%s: multiple initialization", myname);
158 for (mp = mkmap_open_info; mp->
type; mp++)
166 static const char myname[] =
"mkmap_open_register";
170 if (mkmap_open_hash == 0)
173 msg_panic(
"%s: database type exists: %s", myname, type);
186 old_cb = mkmap_open_extend_hook;
187 mkmap_open_extend_hook = new_cb;
238 int open_flags,
int dict_flags)
247 if (mkmap_open_hash == 0)
250 if (mkmap_open_extend_hook != 0 &&
251 (open_fn = mkmap_open_extend_hook(type)) != 0) {
256 msg_fatal(
"unsupported map type for this operation: %s", type);
283 mkmap->
dict = mkmap->
open(path, open_flags, dict_flags);
#define DICT_NEED_UTF8_ACTIVATION(enable, flags)
#define dict_put(dp, key, val)
MKMAP * mkmap_sdbm_open(const char *)
MKMAP_OPEN_EXTEND_FN mkmap_open_extend(MKMAP_OPEN_EXTEND_FN new_cb)
void mkmap_append(MKMAP *mkmap, const char *key, const char *value)
void(* after_open)(struct MKMAP *)
NORETURN msg_panic(const char *fmt,...)
void(* after_close)(struct MKMAP *)
MKMAP * mkmap_lmdb_open(const char *)
#define DICT_FLAG_MULTI_WRITER
HTABLE * htable_create(ssize_t size)
void mkmap_open_register(const char *type, MKMAP_OPEN_FN open_fn)
MKMAP * mkmap_btree_open(const char *)
MKMAP * mkmap_cdb_open(const char *)
MKMAP_OPEN_FN before_open
MKMAP * mkmap_dbm_open(const char *)
void * htable_find(HTABLE *table, const char *key)
#define DICT_FLAG_DUP_WARN
MKMAP_OPEN_FN(* MKMAP_OPEN_EXTEND_FN)(const char *)
NORETURN msg_fatal(const char *fmt,...)
MKMAP * mkmap_open(const char *type, const char *path, int open_flags, int dict_flags)
MKMAP * mkmap_fail_open(const char *)
MKMAP *(* MKMAP_OPEN_FN)(const char *)
DICT * dict_utf8_activate(DICT *)
MKMAP * mkmap_hash_open(const char *)
void mkmap_close(MKMAP *mkmap)
#define DICT_FLAG_UTF8_ACTIVE
void * mymalloc(ssize_t len)
HTABLE_INFO * htable_enter(HTABLE *table, const char *key, void *value)
void msg_info(const char *fmt,...)