7 #include "lib/tdb/include/tdb.h"
8 #include "include/ctdb.h"
10 void msg_h(struct ctdb_context *ctdb, uint64_t srvid, TDB_DATA data, void *private_data)
12 printf("Message received on port %d : %s\n", (int)srvid, data.dptr);
16 void pnn_cb(int32_t status, int32_t pnn, void *private_data)
18 printf("status:%d pnn:%d\n", status, pnn);
21 void rm_cb(int32_t status, int32_t recmaster, void *private_data)
23 printf("status:%d recmaster:%d\n", status, recmaster);
26 void adb_cb(int32_t status, struct ctdb_db_context *ctdb_db, void *private_data)
28 printf("status:%d db:%p\n", status, ctdb_db);
32 int main(int argc, char *argv[])
34 struct ctdb_context *ctdb_context;
40 ctdb_context = ctdb_connect("/tmp/ctdb.socket");
42 handle = ctdb_set_message_handler_send(ctdb_context, 55, NULL, msg_h, NULL);
44 printf("Failed to register message port\n");
47 ret = ctdb_set_message_handler_recv(ctdb_context, handle);
49 printf("Failed to receive set_message_handler reply\n");
53 msg.dptr="HelloWorld";
54 msg.dsize = strlen(msg.dptr);
56 ret = ctdb_send_message(ctdb_context, 0, 55, msg);
58 printf("Failed to send message. Aborting\n");
62 handle = ctdb_getpnn_send(ctdb_context, CTDB_CURRENT_NODE, pnn_cb, NULL);
64 printf("Failed to send get_pnn control\n");
68 handle = ctdb_getrecmaster_send(ctdb_context, CTDB_CURRENT_NODE, rm_cb, NULL);
70 printf("Failed to send get_recmaster control\n");
74 handle = ctdb_attachdb_send(ctdb_context, CTDB_CURRENT_NODE, "test_test.tdb", 0,0, adb_cb, NULL);
76 printf("Failed to send attachdb control\n");
80 pfd.fd = ctdb_get_fd(ctdb_context);
82 pfd.events = ctdb_which_events(ctdb_context);
83 if (poll(&pfd, 1, -1) < 0) {
84 printf("Poll failed");
87 ctdb_service(ctdb_context);