1 /* ldbm.h - ldap dbm compatibility routine header file */
8 /*****************************************************************
10 * use gdbm if possible *
12 *****************************************************************/
18 typedef GDBM_FILE LDBM;
20 extern gdbm_error gdbm_errno;
23 #define LDBM_READER GDBM_READER
24 #define LDBM_WRITER GDBM_WRITER
25 #define LDBM_WRCREAT GDBM_WRCREAT
26 #define LDBM_NEWDB GDBM_NEWDB
27 #define LDBM_FAST GDBM_FAST
29 #define LDBM_SUFFIX ".gdbm"
32 #define LDBM_INSERT GDBM_INSERT
33 #define LDBM_REPLACE GDBM_REPLACE
34 #define LDBM_SYNC 0x80000000
36 #else /* end of gdbm */
38 #ifdef LDBM_USE_DBHASH
40 /*****************************************************************
42 * use berkeley db hash package *
44 *****************************************************************/
46 #include <sys/types.h>
50 #ifdef HAVE_SLEEPYCAT_DB2
62 #define DB_TYPE DB_HASH
65 #define LDBM_READER O_RDONLY
66 #define LDBM_WRITER O_RDWR
67 #define LDBM_WRCREAT (O_RDWR|O_CREAT)
68 #define LDBM_NEWDB (O_RDWR|O_TRUNC|O_CREAT)
71 #define LDBM_SUFFIX ".dbh"
74 #define LDBM_INSERT R_NOOVERWRITE
75 #define LDBM_REPLACE 0
76 #define LDBM_SYNC 0x80000000
80 #else /* end of db hash */
82 #ifdef LDBM_USE_DBBTREE
84 /*****************************************************************
86 * use berkeley db btree package *
88 *****************************************************************/
90 #include <sys/types.h>
93 #ifdef HAVE_SLEEPYCAT_DB2
105 #define DB_TYPE DB_BTREE
108 #define LDBM_READER O_RDONLY
109 #define LDBM_WRITER O_RDWR
110 #define LDBM_WRCREAT (O_RDWR|O_CREAT)
111 #define LDBM_NEWDB (O_RDWR|O_TRUNC|O_CREAT)
114 #define LDBM_SUFFIX ".dbb"
115 #define LDBM_ORDERED 1
117 /* for ldbm_insert */
118 #define LDBM_INSERT R_NOOVERWRITE
119 #define LDBM_REPLACE 0
120 #define LDBM_SYNC 0x80000000
124 #else /* end of db btree */
128 /*****************************************************************
130 * if none of the above use ndbm, the standard unix thing *
132 *****************************************************************/
144 #define LDBM_READER O_RDONLY
145 #define LDBM_WRITER O_WRONLY
146 #define LDBM_WRCREAT (O_RDWR|O_CREAT)
147 #define LDBM_NEWDB (O_RDWR|O_TRUNC|O_CREAT)
150 #define LDBM_SUFFIX ".ndbm"
152 /* for ldbm_insert */
153 #define LDBM_INSERT DBM_INSERT
154 #define LDBM_REPLACE DBM_REPLACE
159 #endif /* db btree */
162 LDBM ldbm_open( char *name, int rw, int mode, int dbcachesize );
163 void ldbm_close( LDBM ldbm );
164 void ldbm_sync( LDBM ldbm );
165 void ldbm_datum_free( LDBM ldbm, Datum data );
166 Datum ldbm_datum_dup( LDBM ldbm, Datum data );
167 Datum ldbm_fetch( LDBM ldbm, Datum key );
168 int ldbm_store( LDBM ldbm, Datum key, Datum data, int flags );
169 int ldbm_delete( LDBM ldbm, Datum key );
170 Datum ldbm_firstkey( LDBM ldbm );
171 Datum ldbm_nextkey( LDBM ldbm, Datum key );
172 int ldbm_errno( LDBM ldbm );
174 #endif /* _ldbm_h_ */