diff options
Diffstat (limited to 'TAO/tao/Remote_Invocation.cpp')
-rw-r--r-- | TAO/tao/Remote_Invocation.cpp | 32 |
1 files changed, 14 insertions, 18 deletions
diff --git a/TAO/tao/Remote_Invocation.cpp b/TAO/tao/Remote_Invocation.cpp index e937eb30d7d..0e3ffa24553 100644 --- a/TAO/tao/Remote_Invocation.cpp +++ b/TAO/tao/Remote_Invocation.cpp @@ -36,20 +36,17 @@ namespace TAO } void - Remote_Invocation::init_target_spec (TAO_Target_Specification &target_spec) + Remote_Invocation::init_target_spec (TAO_Target_Specification &target_spec, + TAO_OutputCDR &output) { - /** - * Mega hack for RTCORBA start. I don't think that - * PortableInterceptor would work here esp. for RTCORBA. PI needs - * to be improved to help our cause. - */ - this->resolver_.stub ()->orb_core ()->service_context_list ( - this->resolver_.stub (), - this->details_.request_service_context (), - 0); - /** - * Mega hack for RTCORBA END - */ + // Generate all service contexts + this->resolver_.stub ()->orb_core ()->service_context_registry (). + generate_service_context ( + this->resolver_.stub (), + *this->resolver_.transport (), + this->details_, + target_spec, + output); TAO_Profile *pfile = this->resolver_.profile (); @@ -61,8 +58,7 @@ namespace TAO break; case TAO_Target_Specification::Profile_Addr: { - IOP::TaggedProfile *tp = - pfile->create_tagged_profile (); + IOP::TaggedProfile *tp = pfile->create_tagged_profile (); if (tp) { @@ -100,11 +96,11 @@ namespace TAO void Remote_Invocation::write_header (TAO_OutputCDR &out_stream) { - TAO_Target_Specification spec; - this->init_target_spec (spec); - this->resolver_.transport ()->clear_translators (0, &out_stream); + TAO_Target_Specification spec; + this->init_target_spec (spec, out_stream); + // Send the request for the header if (this->resolver_.transport ()->generate_request_header (this->details_, spec, |