45 |
extern __inline__ int gdbm_exists(GDBM_FILE dbf, datum key); |
extern __inline__ int gdbm_exists(GDBM_FILE dbf, datum key); |
46 |
# endif /* !HAVE_GDBM_EXISTS */ |
# endif /* !HAVE_GDBM_EXISTS */ |
47 |
|
|
48 |
|
/* gdbm_nextkey() is not lexicographically sorted, so we need to keep the |
49 |
|
* filename around to use as a hash key. |
50 |
|
*/ |
51 |
|
typedef struct { |
52 |
|
char *name; |
53 |
|
GDBM_FILE file; |
54 |
|
} *man_gdbm_wrapper; |
55 |
|
|
56 |
|
man_gdbm_wrapper man_gdbm_open_wrapper (const char *name, GDBM_FILE file); |
57 |
|
datum man_gdbm_firstkey (man_gdbm_wrapper wrap); |
58 |
|
datum man_gdbm_nextkey (man_gdbm_wrapper wrap, datum key); |
59 |
|
void man_gdbm_close (man_gdbm_wrapper wrap); |
60 |
|
|
61 |
# define BLK_SIZE 0 /* to invoke normal fs block size */ |
# define BLK_SIZE 0 /* to invoke normal fs block size */ |
62 |
# define DB_EXT ".db" |
# define DB_EXT ".db" |
63 |
# define MYDBM_FILE GDBM_FILE |
# define MYDBM_FILE man_gdbm_wrapper |
64 |
# define MYDBM_CTRWOPEN(file) gdbm_open(file, BLK_SIZE,\ |
# define MYDBM_CTRWOPEN(file) man_gdbm_open_wrapper(file,\ |
65 |
GDBM_NEWDB|GDBM_FAST, DBMODE, 0) |
gdbm_open(file, BLK_SIZE,\ |
66 |
# define MYDBM_CRWOPEN(file) gdbm_open(file, BLK_SIZE,\ |
GDBM_NEWDB|GDBM_FAST, DBMODE, 0)) |
67 |
GDBM_WRCREAT|GDBM_FAST, DBMODE, 0) |
# define MYDBM_CRWOPEN(file) man_gdbm_open_wrapper(file,\ |
68 |
# define MYDBM_RWOPEN(file) gdbm_open(file, BLK_SIZE,\ |
gdbm_open(file, BLK_SIZE,\ |
69 |
GDBM_WRITER|GDBM_FAST, DBMODE, 0) |
GDBM_WRCREAT|GDBM_FAST, DBMODE, 0)) |
70 |
# define MYDBM_RDOPEN(file) gdbm_open(file, BLK_SIZE,\ |
# define MYDBM_RWOPEN(file) man_gdbm_open_wrapper(file,\ |
71 |
GDBM_READER, DBMODE, 0) |
gdbm_open(file, BLK_SIZE,\ |
72 |
# define MYDBM_INSERT(dbf, key, cont) gdbm_store(dbf, key, cont, GDBM_INSERT) |
GDBM_WRITER|GDBM_FAST, DBMODE, 0)) |
73 |
# define MYDBM_REPLACE(dbf, key, cont) gdbm_store(dbf, key, cont, GDBM_REPLACE) |
# define MYDBM_RDOPEN(file) man_gdbm_open_wrapper(file,\ |
74 |
# define MYDBM_EXISTS(dbf, key) gdbm_exists(dbf, key) |
gdbm_open(file, BLK_SIZE,\ |
75 |
# define MYDBM_DELETE(dbf, key) gdbm_delete(dbf, key) |
GDBM_READER, DBMODE, 0)) |
76 |
# define MYDBM_FETCH(dbf, key) gdbm_fetch(dbf, key) |
# define MYDBM_INSERT(dbf, key, cont) gdbm_store((dbf)->file, key, cont, GDBM_INSERT) |
77 |
# define MYDBM_CLOSE(dbf) gdbm_close(dbf) |
# define MYDBM_REPLACE(dbf, key, cont) gdbm_store((dbf)->file, key, cont, GDBM_REPLACE) |
78 |
# define MYDBM_FIRSTKEY(dbf) gdbm_firstkey(dbf) |
# define MYDBM_EXISTS(dbf, key) gdbm_exists((dbf)->file, key) |
79 |
# define MYDBM_NEXTKEY(dbf, key) gdbm_nextkey(dbf, key) |
# define MYDBM_DELETE(dbf, key) gdbm_delete((dbf)->file, key) |
80 |
# define MYDBM_REORG(dbf) gdbm_reorganize(dbf) |
# define MYDBM_FETCH(dbf, key) gdbm_fetch((dbf)->file, key) |
81 |
|
# define MYDBM_CLOSE(dbf) man_gdbm_close(dbf) |
82 |
|
# define MYDBM_FIRSTKEY(dbf) man_gdbm_firstkey(dbf) |
83 |
|
# define MYDBM_NEXTKEY(dbf, key) man_gdbm_nextkey(dbf, key) |
84 |
|
# define MYDBM_REORG(dbf) gdbm_reorganize((dbf)->file) |
85 |
# define MYDBM_FREE(x) free(x) |
# define MYDBM_FREE(x) free(x) |
86 |
|
|
87 |
# elif defined(NDBM) && !defined(GDBM) && !defined(BTREE) |
# elif defined(NDBM) && !defined(GDBM) && !defined(BTREE) |
97 |
# define BERKELEY_DB |
# define BERKELEY_DB |
98 |
# endif /* _DB_H_ */ |
# endif /* _DB_H_ */ |
99 |
|
|
|
extern __inline__ datum copy_datum (datum dat); |
|
100 |
extern DBM *ndbm_flopen(char *file, int flags, int mode); |
extern DBM *ndbm_flopen(char *file, int flags, int mode); |
101 |
extern int ndbm_flclose(DBM *dbf); |
extern int ndbm_flclose(DBM *dbf); |
102 |
|
|
131 |
size_t dsize; |
size_t dsize; |
132 |
} datum; |
} datum; |
133 |
|
|
|
extern __inline__ datum copy_datum (datum dat); |
|
134 |
extern DB *btree_flopen(char *filename, int flags, int mode); |
extern DB *btree_flopen(char *filename, int flags, int mode); |
135 |
extern __inline__ int btree_close(DB *dbf); |
extern __inline__ int btree_close(DB *dbf); |
136 |
extern __inline__ int btree_exists(DB *dbf, datum key); |
extern __inline__ int btree_exists(DB *dbf, datum key); |
165 |
extern char *database; |
extern char *database; |
166 |
extern MYDBM_FILE dbf; |
extern MYDBM_FILE dbf; |
167 |
|
|
168 |
|
/* db_lookup.c */ |
169 |
|
extern datum copy_datum (datum dat); |
170 |
|
|
171 |
/* db_ver.c */ |
/* db_ver.c */ |
172 |
extern void dbver_wr(MYDBM_FILE dbf); |
extern void dbver_wr(MYDBM_FILE dbf); |
173 |
extern int dbver_rd(MYDBM_FILE dbf); |
extern int dbver_rd(MYDBM_FILE dbf); |