/* * test_client.cc * * Created on: Jun 9, 2010 * Author: lamikr */ #include #include "plpbus/BusServer.hh" #include "plpbus/BusClient.hh" #include "plpbus/BusMessage.hh" using namespace std; using namespace plpbus; #define MSG_ID_HELLO 33 class ClientListenerImpl : public IClientListener { public: inline ClientListenerImpl() {} virtual ~ClientListenerImpl() {} virtual int response_received(const char *msg_rsp_param); virtual int response_received(const BusMessage *msg_rsp_param); virtual int event_received(const char *event_param); virtual int event_received(const BusMessage *event_param); }; int ClientListenerImpl::response_received(const char *msg_rsp_param) { log_debug("response_received(char *%s)\n", msg_rsp_param); return 0; } int ClientListenerImpl::response_received(const BusMessage *msg_rsp_param) { long type; type = 0; ((BusMessage *)msg_rsp_param)->get_type(&type); log_debug("response_received(), type: %ld\n", type); ((BusMessage *)msg_rsp_param)->printout(); return 0; } int ClientListenerImpl::event_received(const char *event_param) { cout << "event_received(char *" << event_param << ") " << endl; return 0; } int ClientListenerImpl::event_received(const BusMessage *event_param) { cout << "event_received(BusMessage *)" << endl; return 0; } int main(int argc, char** argv) { BusClient *client; ClientListenerImpl *lstnr; int err_flg; BusMessage *busmsg; if (argc >= 3) { client = new BusClient(); lstnr = new ClientListenerImpl(); err_flg = client->init(argv[1]); if (err_flg == 0) { cout << "init success" << endl; err_flg = client->add_client_listener(lstnr); if (err_flg == 0) { int err_flg; char *rsp; busmsg = new BusMessage(MSG_ID_HELLO); busmsg->add_string_parameter("a", "hello"); busmsg->add_string_parameter("b", "world"); client->send_message_and_request_response(busmsg); rsp = NULL; err_flg = client->send_message_and_wait_response(argv[2], &rsp); cout << "rsp: " << rsp << endl; err_flg = client->send_message_and_request_response(argv[2]); if (err_flg == 0) { cout << "request message send successfully" << endl; } sleep(10); } else { cout << "client failed to add response listener" << endl; } } else { cout << "client failed to init" << endl; } } else { cout << "usage: " << endl; } return 0; }