s4:scripting/python: always treat the highwatermark as opaque (bug #9508)
[Samba/gebeck_regimport.git] / lib / tdb / test / external-agent.h
blobdffdca962f6ff962af3d392ea44550aad7f4e6fc
1 #ifndef TDB_TEST_EXTERNAL_AGENT_H
2 #define TDB_TEST_EXTERNAL_AGENT_H
4 /* For locking tests, we need a different process to try things at
5 * various times. */
6 enum operation {
7 OPEN,
8 OPEN_WITH_CLEAR_IF_FIRST,
9 TRANSACTION_START,
10 FETCH,
11 STORE,
12 TRANSACTION_COMMIT,
13 CHECK,
14 NEEDS_RECOVERY,
15 CLOSE,
18 /* Do this before doing any tdb stuff. Return handle, or -1. */
19 struct agent *prepare_external_agent(void);
21 enum agent_return {
22 SUCCESS,
23 WOULD_HAVE_BLOCKED,
24 AGENT_DIED,
25 FAILED, /* For fetch, or NEEDS_RECOVERY */
26 OTHER_FAILURE,
29 /* Ask the external agent to try to do an operation.
30 * name == tdb name for OPEN/OPEN_WITH_CLEAR_IF_FIRST,
31 * record name for FETCH/STORE (store stores name as data too)
33 enum agent_return external_agent_operation(struct agent *handle,
34 enum operation op,
35 const char *name);
37 /* Mapping enum -> string. */
38 const char *agent_return_name(enum agent_return ret);
39 const char *operation_name(enum operation op);
41 #endif /* TDB_TEST_EXTERNAL_AGENT_H */