#include #include #include "plpbus/BusServer.hh" using namespace std; using namespace plpbus; #define MSG_ID_HELLO 33 class ServerListenerImpl : public IServerListener { public: inline ServerListenerImpl() {} virtual ~ServerListenerImpl() {} virtual int request_received(const char *msg_req, const char **msg_rsp); virtual int request_received(const BusMessage *msg_req, const BusMessage *msg_rsp); }; int ServerListenerImpl::request_received(const char *msg_req_param, const char **msg_rsp_param) { log_debug("request_received(), request_param: %s\n", msg_req_param); *msg_rsp_param = "jee"; log_debug("request_received(), response param set: %s\n", *msg_rsp_param); return 0; } int ServerListenerImpl::request_received(const BusMessage *msg_req_param, const BusMessage *msg_rsp_param) { long type; int err_flg; type = ((BusMessage *)msg_req_param)->get_type(&err_flg); log_debug("request_received, msg type: %ld\n", type); //*msg_rsp_param = new BusMessage(MSG_ID_HELLO); double dbl = (double)1.0; ((BusMessage *)msg_rsp_param)->add_double_parameter("rsp_param_double", dbl); return 0; } int main(int argc, char** argv) { BusServer *server; ServerListenerImpl *listener; if (argc >= 2) { log_info("starting server\n"); server = new BusServer(); if (server != NULL) { server->init(); listener = new ServerListenerImpl(); if (listener != NULL) { server->add_server_listener(listener); server->launch(argv[1]); } delete(server); delete(listener); } } else { log_info("usage: give server name as a parameter\n"); } return 0; }