diff options
Diffstat (limited to 'TAO/tao/IORInterceptor/IORInterceptor_Adapter_Impl.cpp')
-rw-r--r-- | TAO/tao/IORInterceptor/IORInterceptor_Adapter_Impl.cpp | 73 |
1 files changed, 57 insertions, 16 deletions
diff --git a/TAO/tao/IORInterceptor/IORInterceptor_Adapter_Impl.cpp b/TAO/tao/IORInterceptor/IORInterceptor_Adapter_Impl.cpp index 878419b151a..35cbb376d28 100644 --- a/TAO/tao/IORInterceptor/IORInterceptor_Adapter_Impl.cpp +++ b/TAO/tao/IORInterceptor/IORInterceptor_Adapter_Impl.cpp @@ -1,7 +1,7 @@ // $Id$ -#include "IORInterceptor_Adapter_Impl.h" -#include "IORInfo.h" +#include "tao/IORInterceptor/IORInterceptor_Adapter_Impl.h" +#include "tao/IORInterceptor/IORInfo.h" #include "tao/debug.h" #include "tao/ORB_Constants.h" #include "tao/PI/PI.h" @@ -13,6 +13,8 @@ ACE_RCSID (IORInterceptor, "$Id$") +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + TAO_IORInterceptor_Adapter_Impl::~TAO_IORInterceptor_Adapter_Impl (void) { } @@ -29,6 +31,19 @@ TAO_IORInterceptor_Adapter_Impl::add_interceptor ( } void +TAO_IORInterceptor_Adapter_Impl::add_interceptor ( + PortableInterceptor::IORInterceptor_ptr i, + const CORBA::PolicyList& policies + ACE_ENV_ARG_DECL + ) +{ + this->ior_interceptor_list_.add_interceptor (i, + policies + ACE_ENV_ARG_PARAMETER); + ACE_CHECK; +} + +void TAO_IORInterceptor_Adapter_Impl::destroy_interceptors (ACE_ENV_SINGLE_ARG_DECL) { this->ior_interceptor_list_.destroy_interceptors (ACE_ENV_SINGLE_ARG_PARAMETER); @@ -135,10 +150,18 @@ TAO_IORInterceptor_Adapter_Impl::components_established ( { ACE_TRY { - this->ior_interceptor_list_.interceptor (j)->components_established ( - info - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; + PortableInterceptor::IORInterceptor_ptr ior_interceptor = + this->ior_interceptor_list_.interceptor (j); + + PortableInterceptor::IORInterceptor_3_0_var ior_3_interceptor = + PortableInterceptor::IORInterceptor_3_0::_narrow (ior_interceptor); + if (!CORBA::is_nil (ior_3_interceptor.in ())) + { + ior_3_interceptor->components_established ( + info + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + } } ACE_CATCHANY { @@ -179,11 +202,19 @@ TAO_IORInterceptor_Adapter_Impl::adapter_state_changed ( for (size_t i = 0; i < interceptor_count; ++i) { - this->ior_interceptor_list_.interceptor (i)->adapter_state_changed ( - seq_obj_ref_template, - state - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; + PortableInterceptor::IORInterceptor_ptr ior_interceptor = + this->ior_interceptor_list_.interceptor (i); + + PortableInterceptor::IORInterceptor_3_0_var ior_3_interceptor = + PortableInterceptor::IORInterceptor_3_0::_narrow (ior_interceptor); + if (!CORBA::is_nil (ior_3_interceptor.in ())) + { + ior_3_interceptor->adapter_state_changed ( + seq_obj_ref_template, + state + ACE_ENV_ARG_PARAMETER); + ACE_CHECK; + } } } @@ -204,10 +235,20 @@ TAO_IORInterceptor_Adapter_Impl::adapter_manager_state_changed ( for (size_t i = 0; i < interceptor_count; ++i) { - this->ior_interceptor_list_.interceptor(i)->adapter_manager_state_changed ( - id, - state - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; + PortableInterceptor::IORInterceptor_ptr ior_interceptor = + this->ior_interceptor_list_.interceptor (i); + + PortableInterceptor::IORInterceptor_3_0_var ior_3_interceptor = + PortableInterceptor::IORInterceptor_3_0::_narrow (ior_interceptor); + if (!CORBA::is_nil (ior_3_interceptor.in ())) + { + ior_3_interceptor->adapter_manager_state_changed ( + id, + state + ACE_ENV_ARG_PARAMETER); + ACE_CHECK; + } } } + +TAO_END_VERSIONED_NAMESPACE_DECL |