1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 #ifndef CRM_COMMON_IPC__H
19 # define CRM_COMMON_IPC__H
20
21
22
23
24
25
26
27 # include <crm/common/xml.h>
28
29
30
31 # define create_reply(request, xml_response_data) create_reply_adv(request, xml_response_data, __FUNCTION__);
32 xmlNode *create_reply_adv(xmlNode * request, xmlNode * xml_response_data, const char *origin);
33
34 # define create_request(task, xml_data, host_to, sys_to, sys_from, uuid_from) create_request_adv(task, xml_data, host_to, sys_to, sys_from, uuid_from, __FUNCTION__)
35
36 xmlNode *create_request_adv(const char *task, xmlNode * xml_data, const char *host_to,
37 const char *sys_to, const char *sys_from, const char *uuid_from,
38 const char *origin);
39
40
41 enum crm_ipc_flags
42 {
43 crm_ipc_flags_none = 0x00000000,
44
45 crm_ipc_compressed = 0x00000001,
46
47 crm_ipc_proxied = 0x00000100,
48 crm_ipc_client_response = 0x00000200,
49
50
51 crm_ipc_server_event = 0x00010000,
52 crm_ipc_server_free = 0x00020000,
53 crm_ipc_proxied_relay_response = 0x00040000,
54
55 crm_ipc_server_info = 0x00100000,
56 crm_ipc_server_error = 0x00200000,
57 };
58
59
60 # include <qb/qbipcc.h>
61 typedef struct crm_ipc_s crm_ipc_t;
62
63 crm_ipc_t *crm_ipc_new(const char *name, size_t max_size);
64 bool crm_ipc_connect(crm_ipc_t * client);
65 void crm_ipc_close(crm_ipc_t * client);
66 void crm_ipc_destroy(crm_ipc_t * client);
67
68 int crm_ipc_send(crm_ipc_t * client, xmlNode * message, enum crm_ipc_flags flags,
69 int32_t ms_timeout, xmlNode ** reply);
70
71 int crm_ipc_get_fd(crm_ipc_t * client);
72 bool crm_ipc_connected(crm_ipc_t * client);
73 int crm_ipc_ready(crm_ipc_t * client);
74 long crm_ipc_read(crm_ipc_t * client);
75 const char *crm_ipc_buffer(crm_ipc_t * client);
76 uint32_t crm_ipc_buffer_flags(crm_ipc_t * client);
77 const char *crm_ipc_name(crm_ipc_t * client);
78 unsigned int crm_ipc_default_buffer_size(void);
79
80
81 xmlNode *create_hello_message(const char *uuid, const char *client_name,
82 const char *major_version, const char *minor_version);
83
84 #endif