]> pilppa.org Git - libplpbus.git/blobdiff - src/plpbus/BusClient.cc
Memory leak fixes.
[libplpbus.git] / src / plpbus / BusClient.cc
index b69787b7d64081a5ff22f84cb2d476d35310a9e8..004326bea08d4ad9f5f05197c9b6ce45170cc7da 100644 (file)
@@ -8,13 +8,15 @@
 #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:
@@ -126,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() {