]> pilppa.org Git - libplpbus.git/blobdiff - src/plpbus/BusClient.cc
Memory leak fixes.
[libplpbus.git] / src / plpbus / BusClient.cc
index 8c93e1d2f0e015d25f76a3ad3be8d6b3f531c2f6..004326bea08d4ad9f5f05197c9b6ce45170cc7da 100644 (file)
@@ -5,14 +5,18 @@
  *      Author: lamikr
  */
 
+#include <plp/log.h>
+
 #include "BusClient.hh"
+#include "ClientServerCommon.hh"
 #include "BusMessageInternal.hh"
+#include "RequestResponseBus.hh"
 
 using namespace std;
 using namespace plpbus;
+using namespace plpbus_orb;
 
-class OrbClientImpl : public virtual POA_plpbus_orb::OrbClient
-{
+class OrbClientImpl : public virtual POA_plpbus_orb::OrbClient {
        private:
                IClientListener *listener;
        public:
@@ -54,7 +58,7 @@ class OrbClientImpl : public virtual POA_plpbus_orb::OrbClient
 
 BusClient::BusClient()
 {
-       cout << "created" << endl;
+       log_debug("created\n");;
        _orb            = NULL;
        _poa            = NULL;
 }
@@ -65,7 +69,7 @@ BusClient::~BusClient()
                _orb->destroy();
                _orb    = NULL;
        }
-       cout << "destroyed" << endl;
+       log_debug("destroyed\n");
 }
 
 int BusClient::init(const char *server_name) {
@@ -75,10 +79,10 @@ int BusClient::init(const char *server_name) {
 
        argc    = 0;
        argv    = NULL;
-       cout << "init() started"  << endl;
+       log_info("init() started\n");;
        _orb    = CORBA::ORB_init(argc, argv);
        if (_orb != NULL) {
-               cout << "ORB_init() done, finding server: " << server_name << endl;
+               log_debug("ORB_init() done, finding server: %s\n", server_name);
                server_obj      = find_server_object_by_name(_orb,
                                                        CONST_CONTEXT_NAME__PLPBUS,
                                                        CONST_CONTEXT_KIND__PLPBUS,
@@ -86,22 +90,21 @@ int BusClient::init(const char *server_name) {
                                                        CONST_CONTEXT_NAME__PLPBUS);
                if (CORBA::is_nil(server_obj) == false) {
                        _server         = plpbus_orb::OrbServer::_narrow(server_obj);
-                       cout << "Server object found: " << server_name << endl;
+                       log_info("Server object found: %s", server_name);
                }
                else {
-                       cerr << "Could not find server object: " << server_name << endl;
+                       log_error("Could not find server object: %s\n", server_name);
                }
        }
        return 0;
 }
 
 int BusClient::add_client_listener(IClientListener *listener_param) {
-       cout << "add_client_listener() started"  << endl;
+       log_debug("add_client_listener() started\n");
        if (_poa == NULL) {
                OrbClientImpl                   *client_cb;
                PortableServer::ObjectId_var    oid;
 
-               cout << "register_callback() 1"  << endl;
                _poa            = create_poa(_orb);
                client_cb       = new OrbClientImpl(listener_param);
                oid             = _poa->activate_object(client_cb);
@@ -109,7 +112,7 @@ int BusClient::add_client_listener(IClientListener *listener_param) {
                client_cb->_remove_ref();
                _server->add_event_listener(_client, "event_message", CONST_DEFAULT_EVENT_INTERVAL);
        }
-       cout << "add_client_listener() done"  << endl;
+       log_debug("add_client_listener() done\n");
        return 0;
 }
 
@@ -125,16 +128,23 @@ int BusClient::send_message_and_wait_response(const char *msg_req_param, char **
        return ret_val;
 }
 
-int BusClient::send_message_and_request_response(BusMessage *msg_req_param) {
-       _server->send_dataitem_message_and_request_response(_client, msg_req_param->_dataItemSeq);
+int BusClient::send_message_and_request_response(const BusMessage *msg_req_param) {
+       DataItemSequence        *seq;
+
+       seq     = (DataItemSequence *)msg_req_param->_dataItemSeq;
+       _server->send_dataitem_message_and_request_response(_client, *seq);
        return 0;
 }
 
-int BusClient::send_message_and_wait_response(BusMessage *msg_req_param, BusMessage **msg_rsp_param) {
-       plpbus_orb::DataItemSequence    *seq_rsp;
+int BusClient::send_message_and_wait_response(const BusMessage *msg_req_param, BusMessage **msg_rsp_param) {
+       DataItemSequence        *seq_rsp;
+       DataItemSequence        *seq;
 
        seq_rsp = NULL;
-       _server->send_dataitem_message_and_wait_response(msg_req_param->_dataItemSeq, seq_rsp);
+       seq     = (DataItemSequence *)msg_req_param->_dataItemSeq;
+       _server->send_dataitem_message_and_wait_response(*seq, seq_rsp);
+       *msg_rsp_param  = new BusMessageInternal(*seq_rsp);
+       return 0;
 }
 
 void BusClient::request_shutdown() {
@@ -226,17 +236,17 @@ CORBA::Object_var BusClient::find_server_object_by_name(CORBA::ORB_var orb_param
                        ret_val = ns_root_context->resolve(service_data);
                }
                catch(CosNaming::NamingContext::NotFound& ex) {
-                       cerr << "Could not find service from the name server. " << endl;
+                       log_error("Could not find service from the name server.\n");
                }
                catch(CORBA::TRANSIENT& ex) {
-                       cerr << "Could not find service from the name server. " << endl;
+                       log_error("Could not find service from the name server.\n");
                }
                catch(CORBA::SystemException& ex) {
-                       cerr << "Could not find service from the name server, unknown error." << endl;
+                       log_error("Could not find service from the name server, unknown error.\n");
                }
        }
        else {
-               cerr << "Could not find naming service. " << endl;
+               log_error("Could not find naming service.\n");
        }
        return ret_val;
 }