#ifndef _MKMAP_H_INCLUDED_
#define _MKMAP_H_INCLUDED_
#include <dict.h>
typedef struct MKMAP {
struct DICT *(*open) (const char *, int, int);
struct DICT *dict;
void (*after_open) (struct MKMAP *);
void (*after_close) (struct MKMAP *);
} MKMAP;
extern MKMAP *mkmap_open(const char *, const char *, int, int);
extern void mkmap_append(MKMAP *, const char *, const char *);
extern void mkmap_close(MKMAP *);
#define mkmap_append(map, key, val) dict_put((map)->dict, (key), (val))
extern MKMAP *mkmap_dbm_open(const char *);
extern MKMAP *mkmap_cdb_open(const char *);
extern MKMAP *mkmap_hash_open(const char *);
extern MKMAP *mkmap_btree_open(const char *);
extern MKMAP *mkmap_sdbm_open(const char *);
extern MKMAP *mkmap_proxy_open(const char *);
extern MKMAP *mkmap_fail_open(const char *);
#endif