00001 
00002 #ifndef  __JBXL_BERKELEY_DB4_H__
00003 #define  __JBXL_BERKELEY_DB4_H__
00004 
00005 
00019 #include "tlist.h"
00020 
00021 
00022 #ifdef DISABLE_BERKELEYDB
00023   #ifdef ENABLE_BERKELEYDB
00024     #undef ENABLE_BERKELEYDB
00025   #endif
00026 #endif
00027 
00028 
00029 #ifdef ENABLE_BERKELEYDB
00030   #ifndef HAVE_DB_H 
00031     #ifndef DISABLE_BERKELEYDB
00032       #define DISABLE_BERKELEYDB
00033     #endif
00034     #undef  ENABLE_BERKELEYDB
00035   #endif
00036 #endif
00037 
00038 
00039 
00040 #ifdef ENABLE_BERKELEYDB
00041 
00042 
00043 
00044 #if ! defined (HAVE_DB_H) && ! defined (HAVE_LIBDB_4_2)
00045     #error  fdb.h needs Berkley 
00046 #endif
00047 
00048 
00049 #define DB_DBM_HSEARCH  1
00050 #include <db.h>
00051 
00052 #include <fcntl.h>
00053 
00054 
00055 
00057 
00058 DB*     open_fdb(char* fname, unsigned int mode);
00059 void    close_fdb(DB** dp);
00060 
00061 #define    flush_fdb(d)    (d)->sync((d), 0)
00062 
00063 int     set_fdb_data(DB* dp, Buffer id, Buffer dbdata);
00064 int     del_fdb_data(DB* dp, Buffer id);
00065 Buffer  get_fdb_data(DB* dp, Buffer id);
00066 
00067 
00069 
00070 int     check_fdb_file(char* fname);
00071 int     set_fdb_data_file(char* fname, Buffer id, Buffer dbdata);
00072 int     del_fdb_data_file(char* fname, Buffer id);
00073 Buffer  get_fdb_data_file(char* fname, Buffer id);
00074 
00075 
00077 
00078 tList*    get_all_fdb_data(DB* dp);
00079 tList*    get_all_fdb_data_file(char* fname);
00080 
00081 
00082 #endif    // ENABLE_BERKELEYDB
00083 
00084 #endif    // __JBXL_BERKELEY_DB4_H__
00085 
00086