/[man-db]/man-db/libdb/mydbm.h
ViewVC logotype

Diff of /man-db/libdb/mydbm.h

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.3 by cjwatson, Wed Oct 23 01:03:28 2002 UTC revision 1.4 by cjwatson, Tue Sep 16 21:37:57 2003 UTC
# Line 45  Line 45 
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)
# Line 80  extern __inline__ int gdbm_exists(GDBM_F Line 97  extern __inline__ int gdbm_exists(GDBM_F
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    
# Line 115  typedef struct { Line 131  typedef struct {
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);
# Line 150  extern __inline__ int btree_nextkeydata( Line 165  extern __inline__ int btree_nextkeydata(
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);

Legend:
Removed from v.1.3  
changed lines
  Added in v.1.4

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26