]> git.ozlabs.org Git - ccan/blobdiff - ccan/tdb2/test/run-traverse.c
tdb2: allow multiple chain locks.
[ccan] / ccan / tdb2 / test / run-traverse.c
index 5d35db480c0efa2ad4be7dd6d2116c407fe42d95..583e649dbd3a23727640a87eb368a07d8b67cf8b 100644 (file)
@@ -1,4 +1,5 @@
 #include <ccan/tdb2/tdb.c>
 #include <ccan/tdb2/tdb.c>
+#include <ccan/tdb2/open.c>
 #include <ccan/tdb2/free.c>
 #include <ccan/tdb2/lock.c>
 #include <ccan/tdb2/io.c>
 #include <ccan/tdb2/free.c>
 #include <ccan/tdb2/lock.c>
 #include <ccan/tdb2/io.c>
@@ -38,9 +39,9 @@ struct trav_data {
        enum TDB_ERROR delete_error;
 };
 
        enum TDB_ERROR delete_error;
 };
 
-static int trav(struct tdb_context *tdb, TDB_DATA key, TDB_DATA dbuf, void *p)
+static int trav(struct tdb_context *tdb, TDB_DATA key, TDB_DATA dbuf,
+               struct trav_data *td)
 {
 {
-       struct trav_data *td = p;
        int val;
 
        td->calls++;
        int val;
 
        td->calls++;
@@ -56,8 +57,8 @@ static int trav(struct tdb_context *tdb, TDB_DATA key, TDB_DATA dbuf, void *p)
                td->high = val;
 
        if (td->delete) {
                td->high = val;
 
        if (td->delete) {
-               if (tdb_delete(tdb, key) != 0) {
-                       td->delete_error = tdb_error(tdb);
+               td->delete_error = tdb_delete(tdb, key);
+               if (td->delete_error != TDB_SUCCESS) {
                        return -1;
                }
        }
                        return -1;
                }
        }
@@ -75,9 +76,8 @@ struct trav_grow_data {
 };
 
 static int trav_grow(struct tdb_context *tdb, TDB_DATA key, TDB_DATA dbuf,
 };
 
 static int trav_grow(struct tdb_context *tdb, TDB_DATA key, TDB_DATA dbuf,
-                    void *p)
+                    struct trav_grow_data *tgd)             
 {
 {
-       struct trav_grow_data *tgd = p;
        int val;
        unsigned char buffer[128] = { 0 };
 
        int val;
        unsigned char buffer[128] = { 0 };
 
@@ -95,8 +95,8 @@ static int trav_grow(struct tdb_context *tdb, TDB_DATA key, TDB_DATA dbuf,
        /* Make a big difference to the database. */
        dbuf.dptr = buffer;
        dbuf.dsize = sizeof(buffer);
        /* Make a big difference to the database. */
        dbuf.dptr = buffer;
        dbuf.dsize = sizeof(buffer);
-       if (tdb_append(tdb, key, dbuf) != 0) {
-               tgd->error = tdb_error(tdb);
+       tgd->error = tdb_append(tdb, key, dbuf);
+       if (tgd->error != TDB_SUCCESS) {
                return -1;
        }
        return 0;
                return -1;
        }
        return 0;
@@ -114,8 +114,8 @@ int main(int argc, char *argv[])
                        TDB_INTERNAL|TDB_CONVERT, TDB_CONVERT, 
                        TDB_NOMMAP|TDB_CONVERT };
        union tdb_attribute hattr = { .hash = { .base = { TDB_ATTRIBUTE_HASH },
                        TDB_INTERNAL|TDB_CONVERT, TDB_CONVERT, 
                        TDB_NOMMAP|TDB_CONVERT };
        union tdb_attribute hattr = { .hash = { .base = { TDB_ATTRIBUTE_HASH },
-                                               .hash_fn = fixedhash,
-                                               .hash_private = &seed } };
+                                               .fn = fixedhash,
+                                               .data = &seed } };
 
        hattr.base.next = &tap_log_attr;
 
 
        hattr.base.next = &tap_log_attr;