1/*	$NetBSD: mkmap.h,v 1.2 2023/12/23 20:30:46 christos Exp $	*/
2
3#ifndef _MKMAP_H_INCLUDED_
4#define _MKMAP_H_INCLUDED_
5
6/*++
7/* NAME
8/*	mkmap 3h
9/* SUMMARY
10/*	create or rewrite Postfix database
11/* SYNOPSIS
12/*	#include <mkmap.h>
13/* DESCRIPTION
14/* .nf
15
16 /*
17  * We try to open and lock a file before DB/DBM initialization. However, if
18  * the file does not exist then we may have to acquire the lock after the
19  * DB/DBM initialization.
20  */
21typedef struct MKMAP {
22    struct DICT *(*open) (const char *, int, int);	/* dict_xx_open() */
23    struct DICT *dict;			/* dict_xx_open() result */
24    void    (*after_open) (struct MKMAP *);	/* may be null */
25    void    (*after_close) (struct MKMAP *);	/* may be null */
26    int     multi_writer;		/* multi-writer safe */
27} MKMAP;
28
29extern MKMAP *mkmap_open(const char *, const char *, int, int);
30extern void mkmap_close(MKMAP *);
31
32#define mkmap_append(map, key, val) dict_put((map)->dict, (key), (val))
33
34typedef MKMAP *(*MKMAP_OPEN_FN) (const char *);
35
36/* LICENSE
37/* .ad
38/* .fi
39/*	The Secure Mailer license must be distributed with this software.
40/* AUTHOR(S)
41/*	Wietse Venema
42/*	IBM T.J. Watson Research
43/*	P.O. Box 704
44/*	Yorktown Heights, NY 10598, USA
45/*
46/*	Wietse Venema
47/*	Google, Inc.
48/*	111 8th Avenue
49/*	New York, NY 10011, USA
50/*--*/
51
52#endif
53