]> git.ozlabs.org Git - ccan/blobdiff - ccan/tdb/test/external-transaction.h
tdb: enforce hashing, via example hash in old rwlocks entry in header.
[ccan] / ccan / tdb / test / external-transaction.h
index 8f28a624e4ad5298aad3c35144c169c90dfa55f2..c0197b194a6bb04f8ee4df0182482e331faf6d4c 100644 (file)
@@ -2,10 +2,31 @@
 #define TDB_TEST_EXTERNAL_TRANSACTION_H
 #include <stdbool.h>
 
+enum operation {
+       OPEN,
+       OPEN_WITH_CLEAR_IF_FIRST,
+       TRANSACTION,
+       KEEP_OPENED,
+       TRANSACTION_KEEP_OPENED,
+       FETCH_KEEP_OPENED,
+       STORE_KEEP_OPENED,
+       CHECK_KEEP_OPENED,
+       NEEDS_RECOVERY_KEEP_OPENED,
+       CLOSE,
+};
+
 /* Do this before doing any tdb stuff.  Return handle, or -1. */
-int prepare_external_agent(void);
+struct agent *prepare_external_agent(void);
+
+/* Ask the external agent to try to do an operation. */
+int external_agent_operation(struct agent *handle,
+                            enum operation op,
+                            const char *tdbname);
 
-/* Ask the external agent to try to do a transaction. */
-bool external_agent_transaction(int handle, const char *tdbname);
+/* Ask... */
+void external_agent_operation_start(struct agent *agent,
+                                   enum operation op, const char *tdbname);
 
+/* See if they've done it. */
+bool external_agent_operation_check(struct agent *agent, bool block, int *res);
 #endif /* TDB_TEST_EXTERNAL_TRANSACTION_H */