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