summaryrefslogtreecommitdiff
path: root/source4/lib/dbwrap/dbwrap.h
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2007-08-09 06:34:20 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 15:01:35 -0500
commitd8c070a550736ccfa09c9babfd477d362a74decf (patch)
tree6e18aebbfda051fb8745f586f3c11deaea9bb0da /source4/lib/dbwrap/dbwrap.h
parent233e4f72d63e074692662ac4f6a523ad8a893c57 (diff)
downloadsamba-d8c070a550736ccfa09c9babfd477d362a74decf.tar.gz
samba-d8c070a550736ccfa09c9babfd477d362a74decf.tar.bz2
samba-d8c070a550736ccfa09c9babfd477d362a74decf.zip
r24283: added a dbwrap API for temporary databases, based on the one from the
s3 clustering code. This commit just establishes the API. The ctdb backend for this will come soon. (This used to be commit 3767e755db7b58aee4ff375896beb00b133cc413)
Diffstat (limited to 'source4/lib/dbwrap/dbwrap.h')
-rw-r--r--source4/lib/dbwrap/dbwrap.h53
1 files changed, 53 insertions, 0 deletions
diff --git a/source4/lib/dbwrap/dbwrap.h b/source4/lib/dbwrap/dbwrap.h
new file mode 100644
index 0000000000..4b9654b8cf
--- /dev/null
+++ b/source4/lib/dbwrap/dbwrap.h
@@ -0,0 +1,53 @@
+/*
+ Unix SMB/CIFS implementation.
+
+ database wrapper code
+
+ Copyright (C) Volker Lendecks 2005-2007
+ Copyright (C) Andrew Tridgell 2007
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+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 *db,
+ void *private_data),
+ void *private_data);
+ int (*traverse_read)(struct db_context *db,
+ int (*f)(struct db_record *db,
+ void *private_data),
+ void *private_data);
+ int (*get_seqnum)(struct db_context *db);
+ void *private_data;
+};
+
+struct db_context *db_tmp_open(TALLOC_CTX *mem_ctx, const char *name, int tdb_flags);
+
+
+/* backends */
+struct db_context *db_tmp_open_tdb(TALLOC_CTX *mem_ctx, const char *name, int tdb_flags);
+