X-Git-Url: http://pilppa.org/gitweb/?a=blobdiff_plain;f=src%2Fplpbus%2FOrbServerImpl.cc;h=c22e3de930ee8259de046b14c05915c6118741a6;hb=1695778b8ea970b443dd8367f20505d6a5fb4850;hp=4d4898e1a2e3fcf7b13f5b5d2035efd6b10fdc9b;hpb=8d8f86ae288245111e80196ea1b03aca6e4febc3;p=libplpbus.git diff --git a/src/plpbus/OrbServerImpl.cc b/src/plpbus/OrbServerImpl.cc index 4d4898e..c22e3de 100644 --- a/src/plpbus/OrbServerImpl.cc +++ b/src/plpbus/OrbServerImpl.cc @@ -30,6 +30,7 @@ OrbServerImpl::OrbServerImpl() OrbServerImpl::~OrbServerImpl() { + _orb->destroy(); log_info("done\n"); } @@ -93,7 +94,7 @@ void OrbServerImpl::send_dataitem_message_and_request_response(OrbClient_ptr res msg_rsp = new BusMessage(msg_req->get_type(&err_flg)); _listener->request_received(msg_req, msg_rsp); seq = (DataItemSequence *)msg_rsp->_dataItemSeq; - log_debug("msg_rsp length: %u\n", seq->length()); + log_debug("msg_rsp length: %lu\n", (long unsigned int)seq->length()); msg_rsp->printout(); response_listener_param->receive_response_dataitem_sequence(*seq); delete(msg_req); @@ -105,25 +106,25 @@ void OrbServerImpl::send_dataitem_message_and_request_response(OrbClient_ptr res } } +void copy( const DataItemSequence& orig_seq ) +{ + DataItemSequence new_seq; + + new_seq = orig_seq; +} + CORBA::Long OrbServerImpl::send_dataitem_message_and_wait_response(const DataItemSequence& req_seq_param, DataItemSequence_out rsp_seq_param) { - BusMessage *msg_req; - BusMessage *msg_rsp; - DataItemSequence *seq; - int err_flg; + BusMessage *msg_req; + BusMessage *msg_rsp; + int err_flg; - seq = NULL; - msg_rsp = NULL; msg_req = new BusMessageInternal(req_seq_param); msg_rsp = new BusMessage(msg_req->get_type(&err_flg)); _listener->request_received(msg_req, msg_rsp); - if (msg_rsp != NULL) { - seq = (DataItemSequence *)msg_rsp->_dataItemSeq; - } - else { - seq = new DataItemSequence(); - } - rsp_seq_param._data = seq; + rsp_seq_param._data = new DataItemSequence(*(msg_rsp->_dataItemSeq)); + delete(msg_req); + delete(msg_rsp); return 0; } @@ -278,12 +279,12 @@ CosNaming::NamingContext_var OrbServerImpl::get_naming_service_context(const cha ret_val = NULL; try { // get nameservice reference - log_debug("started\n"); - ns_obj = _orb->resolve_initial_references(CONST_NAME_SERVICE_NAME); + //log_debug("started\n"); + ns_obj = _orb->resolve_initial_references("NameService"); if (CORBA::is_nil(ns_obj) == false) { // get naming service context - ns_cntx = CosNaming::NamingContext::_narrow(ns_obj); - if (CORBA::is_nil(ns_cntx) == false) { + ns_cntx = CosNaming::NamingContext::_narrow(ns_obj.in()); + if (CORBA::is_nil(ns_cntx.in()) == false) { cntx_dta.length(1); cntx_dta[0].id = CORBA::string_dup(service_name_param); cntx_dta[0].kind = CORBA::string_dup(service_kind_param); @@ -311,6 +312,7 @@ CosNaming::NamingContext_var OrbServerImpl::get_naming_service_context(const cha catch(CosNaming::NamingContext::AlreadyBound& ex) { log_error("Failed to get naming service context for %s. Context with same name already exist.\n", service_name_param); } + //CORBA::release(ns_cntx); } else { log_error("Failed to get naming service context for %s. Could not narrow the name service.\n", service_name_param); @@ -338,7 +340,7 @@ CosNaming::NamingContext_var OrbServerImpl::get_naming_service_context(const cha catch(CORBA::SystemException& ex) { log_error("Failed to get naming service context for %s, system error.\n", service_name_param); } - log_debug("done\n"); + //log_debug("done\n"); return ret_val; }