summaryrefslogtreecommitdiff
path: root/lib/mu_dbm.h
diff options
context:
space:
mode:
authorSergey Poznyakoff <gray@gnu.org.ua>2001-11-11 07:43:25 +0000
committerSergey Poznyakoff <gray@gnu.org.ua>2001-11-11 07:43:25 +0000
commit8e1c1229ef668009c479c5b1f40009c09112e6af (patch)
tree3c9d63cd20b5f6690c80fd144ee8bdf9f7974ea0 /lib/mu_dbm.h
parent85252ec2a54dfa20a91895fa8e1c4edc483a142c (diff)
downloadmailutils-8e1c1229ef668009c479c5b1f40009c09112e6af.tar.gz
mailutils-8e1c1229ef668009c479c5b1f40009c09112e6af.tar.bz2
These functions provide an intermediate layer between the DBM API and
mailutils' applications.
Diffstat (limited to 'lib/mu_dbm.h')
-rw-r--r--lib/mu_dbm.h75
1 files changed, 75 insertions, 0 deletions
diff --git a/lib/mu_dbm.h b/lib/mu_dbm.h
new file mode 100644
index 000000000..4542b07f8
--- /dev/null
+++ b/lib/mu_dbm.h
@@ -0,0 +1,75 @@
+/* GNU mailutils - a suite of utilities for electronic mail
+ Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
+
+#include <mailutils/stream.h>
+
+#if defined(WITH_GDBM)
+
+#include <gdbm.h>
+#define USE_DBM
+typedef GDBM_FILE DBM_FILE;
+typedef datum DBM_DATUM;
+#define MU_DATUM_SIZE(d) d.dsize
+#define MU_DATUM_PTR(d) d.dptr
+
+#elif defined(WITH_BDB2)
+
+#include <db.h>
+#define USE_DBM
+
+struct db2_file
+{
+ DB *db;
+ DBC *dbc;
+};
+
+typedef struct db2_file *DBM_FILE;
+typedef DBT DBM_DATUM;
+#define MU_DATUM_SIZE(d) d.size
+#define MU_DATUM_PTR(d) d.data
+
+#elif defined(WITH_NDBM)
+
+#include <ndbm.h>
+#define USE_DBM
+typedef DBM *DBM_FILE;
+typedef datum DBM_DATUM;
+#define MU_DATUM_SIZE(d) d.dsize
+#define MU_DATUM_PTR(d) d.dptr
+
+#elif defined(WITH_OLD_DBM)
+
+#include <dbm.h>
+#define USE_DBM
+typedef int DBM_FILE;
+typedef datum DBM_DATUM;
+#define MU_DATUM_SIZE(d) d.dsize
+#define MU_DATUM_PTR(d) d.dptr
+
+#endif
+
+#ifdef USE_DBM
+int mu_dbm_open __P((char *name, DBM_FILE *db, int flags, int mode));
+int mu_dbm_close __P((DBM_FILE db));
+int mu_dbm_fetch __P((DBM_FILE db, DBM_DATUM key, DBM_DATUM *ret));
+int mu_dbm_insert __P((DBM_FILE db, DBM_DATUM key, DBM_DATUM contents, int replace));
+DBM_DATUM mu_dbm_firstkey __P((DBM_FILE db));
+DBM_DATUM mu_dbm_nextkey __P((DBM_FILE db, DBM_DATUM key));
+#endif
+
+int mu_fcheck_perm __P((int fd, int mode));
+int mu_check_perm __P((char *name, int mode));

Return to:

Send suggestions and report system problems to the System administrator.