]> pilppa.org Git - libplpbus.git/blob - src/plpbus/BusClient.hh
9b32bf8a054f14714910325fc058a7781a088ec2
[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 #include "RequestResponseBus.hh"
15 #include "IClientListener.hh"
16 #include "BusMessage.hh"
17
18 namespace plpbus {
19         class BusClient {
20                 public:
21                         BusClient();
22                         virtual ~BusClient();
23                         virtual int init(const char *server_name);
24                         virtual int add_client_listener(IClientListener *listener_param);
25                         virtual int send_message_and_request_response(const char *msg_req_param);
26                         virtual int send_message_and_wait_response(const char *msg_req_param, char **msg_rsp_param);
27                         virtual int send_message_and_request_response(const BusMessage *msg_req_param);
28                         virtual int send_message_and_wait_response(const BusMessage *msg_req_param, BusMessage **msg_rsp_param);
29                         virtual void request_shutdown();
30                 private:
31                         PortableServer::POA_var         _poa;
32                         CORBA::ORB_var                  _orb;
33                         plpbus_orb::OrbServer_var       _server;
34                         plpbus_orb::OrbClient_var       _client;
35
36                         PortableServer::POA_var create_poa(CORBA::ORB_var orb);
37                         CosNaming::NamingContext_var get_name_service_context(CORBA::ORB_var orb_param);
38                         /**
39                          * Finds server object by it's name by using following keywords:
40                          * name[0].id   = (const char *)CONST_LEAF_CONTEXT_NAME__PLPBUS;
41                          * name[0].kind = (const char *)CONST_CONTEXT_KIND__PLPBUS;
42                          * name[1].id   = server_name;
43                          * name[1].kind = (const char *)CONST_CONTEXT_KIND__PLPBUS;
44                          */
45                         CORBA::Object_var find_server_object_by_name(CORBA::ORB_var orb,
46                                                 const char *leaf_name_param,
47                                                 const char *leaf_kind_param,
48                                                 const char *service_name_param,
49                                                 const char *service_kind_param);
50         };
51 }
52
53 #endif /* PLPBUS_CLIENT_HH_ */