7
#define BUS "org.Enlightenment"
8
#define PATH "/org/enlightenment"
9
#define INTERFACE "org.enlightenment.Test"
12
static int _client_log_dom = -1;
13
#define ERR(...) EINA_LOG_DOM_ERR(_client_log_dom, __VA_ARGS__)
15
static Eldbus_Connection *conn = NULL;
16
static Ecore_Timer *timeout = NULL;
19
_on_alive(void *context EINA_UNUSED, const Eldbus_Message *msg EINA_UNUSED)
25
_on_hello(void *context EINA_UNUSED, const Eldbus_Message *msg)
28
if (eldbus_message_arguments_get(msg, "s", &txt))
60
printf("Passed in all tests\nExiting...\n");
61
eldbus_connection_unref(conn);
63
ecore_main_loop_quit();
66
printf("Passed in %d/%d tests\n", n, NTESTS);
70
_on_send_bool(void *data EINA_UNUSED, const Eldbus_Message *msg, Eldbus_Pending *pending EINA_UNUSED)
72
const char *errname, *errmsg;
75
if (eldbus_message_error_get(msg, &errname, &errmsg))
77
ERR("%s %s", errname, errmsg);
81
if (!eldbus_message_arguments_get(msg, "b", &b))
83
ERR("Could not get entry contents");
89
ERR("Bool value doesn't match");
97
_on_send_byte(void *data EINA_UNUSED, const Eldbus_Message *msg, Eldbus_Pending *pending EINA_UNUSED)
99
const char *errname, *errmsg;
102
if (eldbus_message_error_get(msg, &errname, &errmsg))
104
ERR("%s %s", errname, errmsg);
108
if (!eldbus_message_arguments_get(msg, "y", &y))
110
ERR("Could not get entry contents");
116
ERR("Byte value doesn't match expected value");
124
_on_send_uint32(void *data EINA_UNUSED, const Eldbus_Message *msg, Eldbus_Pending *pending EINA_UNUSED)
126
const char *errname, *errmsg;
129
if (eldbus_message_error_get(msg, &errname, &errmsg))
131
ERR("%s %s", errname, errmsg);
135
if (!eldbus_message_arguments_get(msg, "u", &u))
137
ERR("Could not get entry contents");
143
ERR("Uint32 value doesn't match expected value");
151
_on_send_int32(void *data EINA_UNUSED, const Eldbus_Message *msg, Eldbus_Pending *pending EINA_UNUSED)
153
const char *errname, *errmsg;
156
if (eldbus_message_error_get(msg, &errname, &errmsg))
158
ERR("%s %s", errname, errmsg);
162
if (!eldbus_message_arguments_get(msg, "i", &i))
164
ERR("Could not get entry contents");
170
ERR("Int32 value doesn't match expected value");
178
_on_send_int16(void *data EINA_UNUSED, const Eldbus_Message *msg, Eldbus_Pending *pending EINA_UNUSED)
180
const char *errname, *errmsg;
183
if (eldbus_message_error_get(msg, &errname, &errmsg))
185
ERR("%s %s", errname, errmsg);
189
if (!eldbus_message_arguments_get(msg, "n", &n))
191
ERR("Could not get entry contents");
197
ERR("Int16 value doesn't match expected value");
205
_on_send_double(void *data EINA_UNUSED, const Eldbus_Message *msg, Eldbus_Pending *pending EINA_UNUSED)
207
const char *errname, *errmsg;
210
if (eldbus_message_error_get(msg, &errname, &errmsg))
212
ERR("%s %s", errname, errmsg);
216
if (!eldbus_message_arguments_get(msg, "d", &d))
218
ERR("Could not get entry contents");
222
if (!EINA_DBL_EQ(d, expected.d))
224
ERR("Double value doesn't match expected value");
232
_on_send_string(void *data EINA_UNUSED, const Eldbus_Message *msg, Eldbus_Pending *pending EINA_UNUSED)
234
const char *errname, *errmsg;
237
if (eldbus_message_error_get(msg, &errname, &errmsg))
239
ERR("%s %s", errname, errmsg);
243
if (!eldbus_message_arguments_get(msg, "s", &s))
245
ERR("Could not get entry contents");
249
if (strcmp(s, expected.s) != 0)
251
ERR("Uint32 value doesn't match expected value");
259
_on_async_test(void *data EINA_UNUSED, const Eldbus_Message *msg, Eldbus_Pending *pending EINA_UNUSED)
261
const char *errname, *errmsg;
263
if (eldbus_message_error_get(msg, &errname, &errmsg))
265
ERR("%s %s", errname, errmsg);
273
on_name_owner_changed(void *data EINA_UNUSED, const char *bus, const char *old_id, const char *new_id EINA_UNUSED)
275
printf("Bus=%s | old=%s | new=%s\n", bus, old_id, new_id);
279
finish(void *data EINA_UNUSED)
281
ERR("Timeout\nSome error happened or server is taking too much time to respond.");
282
ecore_main_loop_quit();
284
return ECORE_CALLBACK_CANCEL;
294
_client_log_dom = eina_log_domain_register("client", EINA_COLOR_CYAN);
295
if (_client_log_dom < 0)
297
EINA_LOG_ERR("Unable to create 'client' log domain");
304
conn = eldbus_connection_get(ELDBUS_CONNECTION_TYPE_SESSION);
306
obj = eldbus_object_get(conn, BUS, PATH);
307
proxy = eldbus_proxy_get(obj, INTERFACE);
308
eldbus_proxy_signal_handler_add(proxy, "Alive", _on_alive, NULL);
309
eldbus_proxy_signal_handler_add(proxy, "Hello", _on_hello, NULL);
311
eldbus_proxy_call(proxy, "SendBool", _on_send_bool, NULL, -1, "b",
313
eldbus_proxy_call(proxy, "SendByte", _on_send_byte, NULL, -1, "y",
315
eldbus_proxy_call(proxy, "SendUint32", _on_send_uint32, NULL, -1, "u",
317
eldbus_proxy_call(proxy, "SendInt32", _on_send_int32, NULL, -1, "i",
319
eldbus_proxy_call(proxy, "SendInt16", _on_send_int16, NULL, -1, "n",
321
eldbus_proxy_call(proxy, "SendDouble", _on_send_double, NULL, -1, "d",
323
eldbus_proxy_call(proxy, "SendString", _on_send_string, NULL, -1, "s",
325
eldbus_proxy_call(proxy, "AsyncTest", _on_async_test, NULL, -1, "");
327
eldbus_name_owner_changed_callback_add(conn, BUS, on_name_owner_changed,
329
timeout = ecore_timer_add(30, finish, NULL);
331
ecore_main_loop_begin();
334
ecore_timer_del(timeout);
336
eldbus_connection_unref(conn);
341
eina_log_domain_unregister(_client_log_dom);