/* * BusClient.hh * * Created on: Jun 7, 2010 * Author: lamikr */ #ifndef PLPBUS_CLIENT_HH_ #define PLPBUS_CLIENT_HH_ #include #include #include "RequestResponseBus.hh" #include "IClientListener.hh" #include "BusMessage.hh" namespace plpbus { class BusClient { public: BusClient(); virtual ~BusClient(); virtual int init(const char *server_name); virtual int add_client_listener(IClientListener *listener_param); virtual int send_message_and_request_response(const char *msg_req_param); virtual int send_message_and_wait_response(const char *msg_req_param, char **msg_rsp_param); virtual int send_message_and_request_response(const BusMessage *msg_req_param); virtual int send_message_and_wait_response(const BusMessage *msg_req_param, BusMessage **msg_rsp_param); virtual void request_shutdown(); private: PortableServer::POA_var _poa; CORBA::ORB_var _orb; plpbus_orb::OrbServer_var _server; plpbus_orb::OrbClient_var _client; PortableServer::POA_var create_poa(CORBA::ORB_var orb); CosNaming::NamingContext_var get_name_service_context(CORBA::ORB_var orb_param, const char *nameservice_name); /** * Finds server object by it's name by using following keywords: * name[0].id = (const char *)CONST_LEAF_CONTEXT_NAME__PLPBUS; * name[0].kind = (const char *)CONST_CONTEXT_KIND__PLPBUS; * name[1].id = server_name; * name[1].kind = (const char *)CONST_CONTEXT_KIND__PLPBUS; */ CORBA::Object_var find_server_object_by_name(CORBA::ORB_var orb, const char *leaf_name_param, const char *leaf_kind_param, const char *service_name_param, const char *service_kind_param); }; } #endif /* PLPBUS_CLIENT_HH_ */