]> pilppa.org Git - libplpbus.git/blob - src/plpbus/BusClient.hh
small cleanups for error handling and memory leaks
[libplpbus.git] / src / plpbus / BusClient.hh
1 /*
2  * BusClient.hh
3  *
4  *  Created on: Jun 7, 2010
5  *      Author: lamikr
6  */
7
8 #ifndef PLPBUS_CLIENT_HH_
9 #define PLPBUS_CLIENT_HH_
10
11 #include <iostream>
12 #include <omniORB4/CORBA.h>
13
14
15 #include "RequestResponseBus.hh"
16 #include "IClientListener.hh"
17 #include "BusMessage.hh"
18
19 namespace plpbus {
20         class BusClient {
21                 public:
22                         BusClient();
23                         virtual ~BusClient();
24                         virtual int init(const char *server_name);
25                         virtual int add_client_listener(IClientListener *listener_param);
26                         virtual int send_message_and_request_response(const char *msg_req_param);
27                         virtual int send_message_and_wait_response(const char *msg_req_param, char **msg_rsp_param);
28                         virtual int send_message_and_request_response(const BusMessage *msg_req_param);
29                         virtual int send_message_and_wait_response(const BusMessage *msg_req_param, BusMessage **msg_rsp_param);
30                         virtual void request_shutdown();
31                 private:
32                         PortableServer::POA_var         _poa;
33                         CORBA::ORB_var                  _orb;
34                         plpbus_orb::OrbServer_var       _server;
35                         plpbus_orb::OrbClient_var       _client;
36
37                         PortableServer::POA_var create_poa(CORBA::ORB_var orb);
38                         CosNaming::NamingContext_var get_name_service_context(CORBA::ORB_var orb_param, const char *nameservice_name);
39                         /**
40                          * Finds server object by it's name by using following keywords:
41                          * name[0].id   = (const char *)CONST_LEAF_CONTEXT_NAME__PLPBUS;
42                          * name[0].kind = (const char *)CONST_CONTEXT_KIND__PLPBUS;
43                          * name[1].id   = server_name;
44                          * name[1].kind = (const char *)CONST_CONTEXT_KIND__PLPBUS;
45                          */
46                         CORBA::Object_var find_server_object_by_name(CORBA::ORB_var orb,
47                                                 const char *leaf_name_param,
48                                                 const char *leaf_kind_param,
49                                                 const char *service_name_param,
50                                                 const char *service_kind_param);
51         };
52 }
53
54 #endif /* PLPBUS_CLIENT_HH_ */