Author: vlendec Date: 2007-05-10 10:42:13 +0000 (Thu, 10 May 2007) New Revision: 22775
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=22775 Log: For the cluster code I've developed a wrapper around tdb to put different database backends in place dynamically. The main abstractions are db_context and db_record, it should be mainly self-describing, see include/dbwrap.h. You open the db just as you would open a tdb, this time with db_open(). If you want to fetch a record, just do the db->fetch() call, if you want to do operations on it, you need to get it with fetch_locked(). I added dbwrap_file.c (not heavily tested lately) as an example for what can be done with that abstraction, uses a file per key. So if anybody is willing to shape that up, we might have a chance on reiserfs again.... :-) This abstraction works fine for brlock.tdb, locking.tdb, connections.tdb and sessionid.tdb. It should work fine for the others as well, I just did not yet get around to convert them. If nobody loudly screams NO, then I will import the code that uses this soon. Volker Added: branches/SAMBA_3_0/source/include/dbwrap.h branches/SAMBA_3_0/source/lib/dbwrap.c branches/SAMBA_3_0/source/lib/dbwrap_file.c branches/SAMBA_3_0/source/lib/dbwrap_tdb.c branches/SAMBA_3_0_26/source/include/dbwrap.h branches/SAMBA_3_0_26/source/lib/dbwrap.c branches/SAMBA_3_0_26/source/lib/dbwrap_file.c branches/SAMBA_3_0_26/source/lib/dbwrap_tdb.c Modified: branches/SAMBA_3_0/source/Makefile.in branches/SAMBA_3_0/source/include/includes.h branches/SAMBA_3_0_26/source/Makefile.in branches/SAMBA_3_0_26/source/include/includes.h Changeset: Sorry, the patch is too large (1607 lines) to include; please use WebSVN to see it! WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=22775
