]> pilppa.org Git - libplpbus.git/blob - src_test/test_client.cc
71ba4aed907d8aa5ffa2ca82ee997b0351bc2526
[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         cout << "event_received(char *" << event_param << ") " << endl;
46         return 0;
47 }
48
49 int ClientListenerImpl::event_received(const BusMessage *event_param) {
50         cout << "event_received(BusMessage *)" << endl;
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              *busmsg;
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                         cout << "init success" << endl;
67                         err_flg = client->add_client_listener(lstnr);
68                         if (err_flg == 0) {
69                                 int     err_flg;
70                                 char    *rsp;
71
72                                 busmsg  = new BusMessage(MSG_ID_HELLO);
73                                 busmsg->add_string_parameter("a", "hello");
74                                 busmsg->add_string_parameter("b", "world");
75                                 client->send_message_and_request_response(busmsg);
76
77                                 rsp     = NULL;
78                                 err_flg = client->send_message_and_wait_response(argv[2], &rsp);
79                                 cout << "rsp: " << rsp << endl;
80                                 err_flg = client->send_message_and_request_response(argv[2]);
81                                 if (err_flg == 0) {
82                                         cout << "request message send successfully"  << endl;
83                                 }
84                                 sleep(10);
85                         }
86                         else {
87                                 cout << "client failed to add response listener"  << endl;
88                         }
89                 }
90                 else {
91                         cout << "client failed to init"  << endl;
92                 }
93         }
94         else {
95                 cout << "usage: <server_name> <message text>"  << endl;
96         }
97         return 0;
98 }