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