]> pilppa.org Git - libplpbus.git/blob - src_test/test_client.cc
64d06bc1817351fc7dc126d441ea8fcf5784a1fa
[libplpbus.git] / src_test / test_client.cc
1 /*
2  * test_client.cc
3  *
4  *  Created on: Jun 9, 2010
5  *      Author: lamikr
6  */
7 #include <plp/log.h>
8
9 #include "plpbus/BusServer.hh"
10 #include "plpbus/BusClient.hh"
11 #include "plpbus/BusMessage.hh"
12
13 using namespace std;
14 using namespace plpbus;
15
16 #define MSG_ID_HELLO    33
17
18 class ClientListenerImpl : public IClientListener
19 {
20         public:
21                 inline ClientListenerImpl() {}
22                 virtual ~ClientListenerImpl() {}
23                 virtual int response_received(const char *msg_rsp_param);
24                 virtual int response_received(const BusMessage *msg_rsp_param);
25                 virtual int event_received(const char *event_param);
26                 virtual int event_received(const BusMessage *event_param);
27 };
28
29 int ClientListenerImpl::response_received(const char *msg_rsp_param) {
30         log_debug("response_received(char *%s)\n", msg_rsp_param);
31         return 0;
32 }
33
34 int ClientListenerImpl::response_received(const BusMessage *msg_rsp_param) {
35         long    type;
36         int     err_flg;
37
38         type    = ((BusMessage *)msg_rsp_param)->get_type(&err_flg);
39         log_debug("response_received(), type: %ld\n", type);
40         ((BusMessage *)msg_rsp_param)->printout();
41         return 0;
42 }
43
44 int ClientListenerImpl::event_received(const char *event_param) {
45         log_debug("event_received(%s)\n", event_param);
46         return 0;
47 }
48
49 int ClientListenerImpl::event_received(const BusMessage *event_param) {
50         log_debug("event_received(BusMessage *)\n");
51         return 0;
52 }
53
54 int main(int argc, char** argv)
55 {
56         BusClient               *client;
57         ClientListenerImpl      *lstnr;
58         int                     err_flg;
59         BusMessage              *bus_msg;
60
61         if (argc >= 3) {
62                 client  = new BusClient();
63                 lstnr   = new ClientListenerImpl();
64                 err_flg = client->init(argv[1]);
65                 if (err_flg == 0) {
66                         log_debug("init success\n");
67                         err_flg = client->add_client_listener(lstnr);
68                         if (err_flg == 0) {
69                                 int     err_flg;
70                                 char    *rsp;
71
72                                 bus_msg = new BusMessage(MSG_ID_HELLO);
73                                 if (bus_msg != NULL) {
74                                         bus_msg->add_string_parameter("a", "hello");
75                                         bus_msg->add_string_parameter("b", "world");
76                                         client->send_message_and_request_response(bus_msg);
77
78                                         rsp     = NULL;
79                                         err_flg = client->send_message_and_wait_response(argv[2], &rsp);
80                                         log_debug("rsp: %s\n", rsp);
81                                         err_flg = client->send_message_and_request_response(argv[2]);
82                                         if (err_flg == 0) {
83                                                 log_debug("request message send successfully\n");
84                                         }
85                                         sleep(5);
86                                         delete(bus_msg);
87                                 }
88                         }
89                         else {
90                                 log_error("client failed to add response listener\n");
91                         }
92                 }
93                 else {
94                         log_error("client failed to init\n");
95                 }
96         }
97         else {
98                 log_info("usage: <server_name> <message text>\n");
99         }
100         return 0;
101 }