00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00049 #ifndef DKSDBI_H_INC
00050 #define DKSDBI_H_INC 1
00051
00052 #include <dk.h>
00053
00056 typedef void *dk_sdbi_t;
00057
00058
00072 typedef int dk_sdbi_fct_t DK_PR((\
00073 void *o, void *kp, size_t kl, void *vp, size_t vl));
00074
00075 #if defined(EXTERN)
00076 #undef EXTERN
00077 #endif
00078 #if defined(DKSDBI_C)
00079 #define EXTERN
00080 #else
00081 #if DK_HAVE_PROTOTYPES
00082 #define EXTERN
00083 #else
00084 #define EXTERN extern
00085 #endif
00086 #endif
00087 #if defined(__cplusplus)
00088 extern "C" {
00089 #endif
00090
00091
00092
00107 EXTERN dk_sdbi_t
00108 dksdbi_open DK_PR((char *n, int t, int a, int m, int b));
00109
00110
00111
00116 EXTERN void
00117 dksdbi_close DK_PR((dk_sdbi_t d));
00118
00119
00120
00132 EXTERN int
00133 dksdbi_store DK_PR((\
00134 dk_sdbi_t d, void *kp, size_t kl, void *vp, size_t vl, int i));
00135
00136
00137
00147 EXTERN int
00148 dksdbi_string_store DK_PR((dk_sdbi_t d, char *k, char *v, int i));
00149
00150
00151
00161 EXTERN int
00162 dksdbi_fetch DK_PR((dk_sdbi_t d, void *kp, size_t kl, void *vp, size_t *vl));
00163
00164
00165
00173 EXTERN int
00174 dksdbi_string_fetch DK_PR((dk_sdbi_t d, char *k, char *v, size_t s));
00175
00176
00177
00184 EXTERN int
00185 dksdbi_delete DK_PR((dk_sdbi_t d, char *k, size_t l));
00186
00187
00188
00194 EXTERN int
00195 dksdbi_string_delete DK_PR((dk_sdbi_t d, char *k));
00196
00197
00198
00204 EXTERN int
00205 dksdbi_remove_file DK_PR((char *n, int t));
00206
00207
00208
00218 EXTERN int
00219 dksdbi_traverse DK_PR((dk_sdbi_t d, void *o, dk_sdbi_fct_t *f));
00220
00221
00222
00229 EXTERN int
00230 dksdbi_sync DK_PR((dk_sdbi_t d));
00231
00232 #if defined(__cplusplus)
00233 };
00234 #endif
00235
00237 #define DK_SDBI_TYPE_AUTO 0
00238
00240 #define DK_SDBI_TYPE_BDB 1
00241
00243 #define DK_SDBI_TYPE_NDBM 2
00244
00246 #define DK_SDBI_TYPE_GDBM 3
00247
00249 #define DK_SDBI_MODE_READ 1
00250
00252 #define DK_SDBI_MODE_WRITE 2
00253
00255 #define DK_SDBI_MODE_RDWR (DK_SDBI_MODE_READ|DK_SDBI_MODE_WRITE)
00256
00258 #define DK_SDBI_MODE_TRUNCATE 4
00259
00261 #define DK_SDBI_INSMOD_NO_REPLACE 1
00262
00263 #endif
00264