1 #ifndef _SLMDB_H_INCLUDED_
2 #define _SLMDB_H_INCLUDED_
34 #define SLMDB_JMP_BUF jmp_buf
36 #define SLMDB_JMP_BUF sigjmp_buf
56 void (*longjmp_fn) (
void *,
int);
57 void (*notify_fn) (
void *,
int,...);
58 void (*assert_fn) (
void *,
const char *);
66 #define SLMDB_FLAG_BULK (1 << 0)
77 #define slmdb_fd(slmdb) ((slmdb)->db_fd)
78 #define slmdb_curr_limit(slmdb) ((slmdb)->curr_limit)
81 #define SLMDB_CTL_END 0
82 #define SLMDB_CTL_LONGJMP_FN 1
83 #define SLMDB_CTL_NOTIFY_FN 2
84 #define SLMDB_CTL_CB_CONTEXT 3
85 #define SLMDB_CTL_API_RETRY_LIMIT 5
86 #define SLMDB_CTL_BULK_RETRY_LIMIT 6
87 #define SLMDB_CTL_ASSERT_FN 7
90 #define CA_SLMDB_CTL_END SLMDB_CTL_END
91 #define CA_SLMDB_CTL_LONGJMP_FN(v) SLMDB_CTL_LONGJMP_FN, CHECK_VAL(SLMDB_CTL, SLMDB_LONGJMP_FN, (v))
92 #define CA_SLMDB_CTL_NOTIFY_FN(v) SLMDB_CTL_NOTIFY_FN, CHECK_VAL(SLMDB_CTL, SLMDB_NOTIFY_FN, (v))
93 #define CA_SLMDB_CTL_CB_CONTEXT(v) SLMDB_CTL_CB_CONTEXT, CHECK_PTR(SLMDB_CTL, void, (v))
94 #define CA_SLMDB_CTL_API_RETRY_LIMIT(v) SLMDB_CTL_API_RETRY_LIMIT, CHECK_VAL(SLMDB_CTL, int, (v))
95 #define CA_SLMDB_CTL_BULK_RETRY_LIMIT(v) SLMDB_CTL_BULK_RETRY_LIMIT, CHECK_VAL(SLMDB_CTL, int, (v))
96 #define CA_SLMDB_CTL_ASSERT_FN(v) SLMDB_CTL_ASSERT_FN, CHECK_VAL(SLMDB_CTL, SLMDB_ASSERT_FN, (v))
void(* SLMDB_NOTIFY_FN)(void *, int,...)
int slmdb_del(SLMDB *, MDB_val *)
CHECK_VAL_HELPER_DCL(SLMDB_CTL, int)
int slmdb_init(SLMDB *, size_t, int, size_t)
CHECK_PTR_HELPER_DCL(SLMDB_CTL, void)
int slmdb_get(SLMDB *, MDB_val *, MDB_val *)
void(* SLMDB_LONGJMP_FN)(void *, int)
int slmdb_cursor_get(SLMDB *, MDB_val *, MDB_val *, MDB_cursor_op)
int slmdb_open(SLMDB *, const char *, int, int, int)
void(* SLMDB_ASSERT_FN)(void *, const char *)
int slmdb_control(SLMDB *, int,...)
int slmdb_put(SLMDB *, MDB_val *, MDB_val *, int)