diff options
author | frehberger <frehberger@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2006-03-29 06:26:35 +0000 |
---|---|---|
committer | frehberger <frehberger@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2006-03-29 06:26:35 +0000 |
commit | efef0e599c98ce8f02194b8b4a7f4a50a2d176a3 (patch) | |
tree | df940e25a0a4cb8300316ad185a91ffb0395b5ed /TAO/tao/Invocation_Adapter.cpp | |
parent | be40195a7eedc4e0f2e33886a5d71c8172143481 (diff) | |
download | ATCD-efef0e599c98ce8f02194b8b4a7f4a50a2d176a3.tar.gz |
ChangeLogTag: Tue Mar 28 23:59:00 UTC 2006 Frank Rehberger <frehberger@prismtech.com>
Diffstat (limited to 'TAO/tao/Invocation_Adapter.cpp')
-rw-r--r-- | TAO/tao/Invocation_Adapter.cpp | 25 |
1 files changed, 19 insertions, 6 deletions
diff --git a/TAO/tao/Invocation_Adapter.cpp b/TAO/tao/Invocation_Adapter.cpp index 9d2cdb49e55..26cf176af9e 100644 --- a/TAO/tao/Invocation_Adapter.cpp +++ b/TAO/tao/Invocation_Adapter.cpp @@ -11,7 +11,7 @@ #include "tao/Transport.h" #include "tao/Transport_Mux_Strategy.h" #include "tao/Collocation_Proxy_Broker.h" - +#include "tao/GIOP_Utils.h" #if !defined (__ACE_INLINE__) # include "tao/Invocation_Adapter.inl" #endif /* __ACE_INLINE__ */ @@ -191,8 +191,12 @@ namespace TAO effective_target = coll_inv.steal_forwarded_reference (); + const bool is_permanent_forward = + (coll_inv.reply_status() == TAO_GIOP_LOCATION_FORWARD_PERM); + (void) this->object_forwarded (effective_target, - stub + stub, + is_permanent_forward ACE_ENV_ARG_PARAMETER); ACE_CHECK_RETURN (TAO_INVOKE_FAILURE); } @@ -322,8 +326,12 @@ namespace TAO effective_target = synch.steal_forwarded_reference (); + const bool is_permanent_forward = + (synch.reply_status() == TAO_GIOP_LOCATION_FORWARD_PERM); + this->object_forwarded (effective_target, - r.stub () + r.stub (), + is_permanent_forward ACE_ENV_ARG_PARAMETER); ACE_CHECK_RETURN (TAO_INVOKE_FAILURE); } @@ -353,8 +361,12 @@ namespace TAO effective_target = synch.steal_forwarded_reference (); + const bool is_permanent_forward = + (synch.reply_status() == TAO_GIOP_LOCATION_FORWARD_PERM); + this->object_forwarded (effective_target, - r.stub () + r.stub (), + is_permanent_forward ACE_ENV_ARG_PARAMETER); ACE_CHECK_RETURN (TAO_INVOKE_FAILURE); } @@ -364,7 +376,8 @@ namespace TAO void Invocation_Adapter::object_forwarded (CORBA::Object_var &effective_target, - TAO_Stub *stub + TAO_Stub *stub, + CORBA::Boolean permanent_forward ACE_ENV_ARG_DECL) { // The object pointer has to be changed to a TAO_Stub pointer @@ -381,7 +394,7 @@ namespace TAO // Reset the profile in the stubs - stub->add_forward_profiles (stubobj->base_profiles ()); + stub->add_forward_profiles (stubobj->base_profiles (), permanent_forward); if (stub->next_profile () == 0) ACE_THROW (CORBA::TRANSIENT ( |