#include "tdb_compat.h"
-struct db_record {
- TDB_DATA key, value;
- NTSTATUS (*store)(struct db_record *rec, TDB_DATA data, int flag);
- NTSTATUS (*delete_rec)(struct db_record *rec);
- void *private_data;
-};
-
-struct db_context {
- struct db_record *(*fetch_locked)(struct db_context *db,
- TALLOC_CTX *mem_ctx,
- TDB_DATA key);
- int (*fetch)(struct db_context *db, TALLOC_CTX *mem_ctx,
- TDB_DATA key, TDB_DATA *data);
- int (*traverse)(struct db_context *db,
- int (*f)(struct db_record *rec,
- void *private_data),
- void *private_data);
- int (*traverse_read)(struct db_context *db,
- int (*f)(struct db_record *rec,
- void *private_data),
- void *private_data);
- int (*get_seqnum)(struct db_context *db);
- int (*get_flags)(struct db_context *db);
- int (*transaction_start)(struct db_context *db);
- int (*transaction_commit)(struct db_context *db);
- int (*transaction_cancel)(struct db_context *db);
- int (*parse_record)(struct db_context *db, TDB_DATA key,
- int (*parser)(TDB_DATA key, TDB_DATA data,
- void *private_data),
- void *private_data);
- void *private_data;
- bool persistent;
-};
+struct db_record;
+struct db_context;
/* The following definitions come from lib/dbwrap.c */
+TDB_DATA dbwrap_record_get_key(const struct db_record *rec);
+TDB_DATA dbwrap_record_get_value(const struct db_record *rec);
+void *dbwrap_record_get_private_data(const struct db_record *rec);
+NTSTATUS dbwrap_record_store(struct db_record *rec, TDB_DATA data, int flags);
+NTSTATUS dbwrap_record_delete(struct db_record *rec);
+struct db_record *dbwrap_fetch_locked(struct db_context *db,
+ TALLOC_CTX *mem_ctx,
+ TDB_DATA key);
+
NTSTATUS dbwrap_delete(struct db_context *db, TDB_DATA key);
NTSTATUS dbwrap_store(struct db_context *db, TDB_DATA key,
TDB_DATA data, int flags);
-TDB_DATA dbwrap_fetch(struct db_context *db, TALLOC_CTX *mem_ctx,
- TDB_DATA key);
+NTSTATUS dbwrap_fetch(struct db_context *db, TALLOC_CTX *mem_ctx,
+ TDB_DATA key, TDB_DATA *value);
+bool dbwrap_exists(struct db_context *db, TDB_DATA key);
NTSTATUS dbwrap_traverse(struct db_context *db,
int (*f)(struct db_record*, void*),
void *private_data,
int *count);
+NTSTATUS dbwrap_traverse_read(struct db_context *db,
+ int (*f)(struct db_record*, void*),
+ void *private_data,
+ int *count);
+int dbwrap_parse_record(struct db_context *db, TDB_DATA key,
+ int (*parser)(TDB_DATA key, TDB_DATA data,
+ void *private_data),
+ void *private_data);
+int dbwrap_wipe(struct db_context *db);
+int dbwrap_get_seqnum(struct db_context *db);
+int dbwrap_get_flags(struct db_context *db);
+int dbwrap_transaction_start(struct db_context *db);
+int dbwrap_transaction_commit(struct db_context *db);
+int dbwrap_transaction_cancel(struct db_context *db);
/* The following definitions come from lib/dbwrap_util.c */
NTSTATUS dbwrap_delete_bystring(struct db_context *db, const char *key);
NTSTATUS dbwrap_store_bystring(struct db_context *db, const char *key,
TDB_DATA data, int flags);
-TDB_DATA dbwrap_fetch_bystring(struct db_context *db, TALLOC_CTX *mem_ctx,
- const char *key);
+NTSTATUS dbwrap_fetch_bystring(struct db_context *db, TALLOC_CTX *mem_ctx,
+ const char *key, TDB_DATA *value);
-int32_t dbwrap_fetch_int32(struct db_context *db, const char *keystr);
+NTSTATUS dbwrap_fetch_int32(struct db_context *db, const char *keystr,
+ int32_t *result);
int dbwrap_store_int32(struct db_context *db, const char *keystr, int32_t v);
bool dbwrap_fetch_uint32(struct db_context *db, const char *keystr,
uint32_t *val);
NTSTATUS dbwrap_delete_bystring_upper(struct db_context *db, const char *key);
NTSTATUS dbwrap_store_bystring_upper(struct db_context *db, const char *key,
TDB_DATA data, int flags);
-TDB_DATA dbwrap_fetch_bystring_upper(struct db_context *db, TALLOC_CTX *mem_ctx,
- const char *key);
+NTSTATUS dbwrap_fetch_bystring_upper(struct db_context *db, TALLOC_CTX *mem_ctx,
+ const char *key, TDB_DATA *value);
#endif /* __DBWRAP_H__ */