tdb/test: add PING command to external-agent.c
[Samba.git] / lib / tdb / test / external-agent.h
blobbf8a221bcac3eec207f152d00fc0f2b5ab687132
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,
16 PING,
19 /* Do this before doing any tdb stuff. Return handle, or -1. */
20 struct agent *prepare_external_agent(void);
21 void shutdown_agent(struct agent *agent);
23 enum agent_return {
24 SUCCESS,
25 WOULD_HAVE_BLOCKED,
26 AGENT_DIED,
27 FAILED, /* For fetch, or NEEDS_RECOVERY */
28 OTHER_FAILURE,
31 /* Ask the external agent to try to do an operation.
32 * name == tdb name for OPEN/OPEN_WITH_CLEAR_IF_FIRST,
33 * record name for FETCH/STORE (store stores name as data too)
35 enum agent_return external_agent_operation(struct agent *handle,
36 enum operation op,
37 const char *name);
39 /* Mapping enum -> string. */
40 const char *agent_return_name(enum agent_return ret);
41 const char *operation_name(enum operation op);
43 #endif /* TDB_TEST_EXTERNAL_AGENT_H */