diff options
Diffstat (limited to 'TAO/tao/IORInterceptor')
-rw-r--r-- | TAO/tao/IORInterceptor/IORInterceptor_Adapter_Impl.cpp | 13 | ||||
-rw-r--r-- | TAO/tao/IORInterceptor/IORInterceptor_Adapter_Impl.h | 9 | ||||
-rw-r--r-- | TAO/tao/IORInterceptor/IORInterceptor_Details.cpp | 28 | ||||
-rw-r--r-- | TAO/tao/IORInterceptor/IORInterceptor_Details.h | 71 | ||||
-rw-r--r-- | TAO/tao/IORInterceptor/IORInterceptor_Details.inl | 20 |
5 files changed, 140 insertions, 1 deletions
diff --git a/TAO/tao/IORInterceptor/IORInterceptor_Adapter_Impl.cpp b/TAO/tao/IORInterceptor/IORInterceptor_Adapter_Impl.cpp index 0124de24c1e..4e9ecb68d5a 100644 --- a/TAO/tao/IORInterceptor/IORInterceptor_Adapter_Impl.cpp +++ b/TAO/tao/IORInterceptor/IORInterceptor_Adapter_Impl.cpp @@ -31,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); diff --git a/TAO/tao/IORInterceptor/IORInterceptor_Adapter_Impl.h b/TAO/tao/IORInterceptor/IORInterceptor_Adapter_Impl.h index d9d0bfd7a3e..949f4be9611 100644 --- a/TAO/tao/IORInterceptor/IORInterceptor_Adapter_Impl.h +++ b/TAO/tao/IORInterceptor/IORInterceptor_Adapter_Impl.h @@ -25,12 +25,14 @@ #include "tao/IORInterceptor/IORInterceptor.h" #include "tao/IORInterceptor_Adapter.h" #include "tao/PI/Interceptor_List_T.h" +#include "IORInterceptor_Details.h" TAO_BEGIN_VERSIONED_NAMESPACE_DECL namespace TAO { - typedef Interceptor_List< ::PortableInterceptor::IORInterceptor> + typedef Interceptor_List< ::PortableInterceptor::IORInterceptor, + IORInterceptor_Details> IORInterceptor_List; } @@ -55,6 +57,11 @@ public: PortableInterceptor::IORInterceptor_ptr interceptor ACE_ENV_ARG_DECL); + virtual void add_interceptor ( + PortableInterceptor::IORInterceptor_ptr interceptor, + const CORBA::PolicyList& policies + ACE_ENV_ARG_DECL); + virtual void destroy_interceptors (ACE_ENV_SINGLE_ARG_DECL); virtual void establish_components (TAO_Root_POA *poa ACE_ENV_ARG_DECL) diff --git a/TAO/tao/IORInterceptor/IORInterceptor_Details.cpp b/TAO/tao/IORInterceptor/IORInterceptor_Details.cpp new file mode 100644 index 00000000000..90fcd105861 --- /dev/null +++ b/TAO/tao/IORInterceptor/IORInterceptor_Details.cpp @@ -0,0 +1,28 @@ +#include "IORInterceptor_Details.h" + +#if !defined (__ACE_INLINE__) +#include "IORInterceptor_Details.inl" +#endif /* defined INLINE */ + +ACE_RCSID (PI, + IORInterceptor_Details, + "$Id$") + +#include "tao/SystemException.h" + +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + +namespace TAO +{ + void + IORInterceptor_Details::apply_policies ( + const CORBA::PolicyList &policies + ACE_ENV_ARG_DECL) + { + // There are currently no policies that apply to IOR Interceptors. + ACE_UNUSED_ARG (policies); + ACE_THROW (CORBA::INV_POLICY ()); + } +} + +TAO_END_VERSIONED_NAMESPACE_DECL diff --git a/TAO/tao/IORInterceptor/IORInterceptor_Details.h b/TAO/tao/IORInterceptor/IORInterceptor_Details.h new file mode 100644 index 00000000000..f9587e88693 --- /dev/null +++ b/TAO/tao/IORInterceptor/IORInterceptor_Details.h @@ -0,0 +1,71 @@ +// -*- C++ -*- + +//============================================================================= +/** + * @file IORInterceptor_Details.h + * + * $Id$ + * + * This file declares a class that manages the details + * about a registered client request interceptor. Policies can be + * used when interceptors are registered, and the policy values + * will be processed and used to modify the values of the + * IORInterceptor_Details object associated with the registered + * client request interceptor. + * + * @author Tim Bradley <bradley_t@ociweb.com> + */ +//============================================================================= + +#ifndef TAO_IOR_INTERCEPTOR_DETAILS_H +#define TAO_IOR_INTERCEPTOR_DETAILS_H + +#include /**/ "ace/pre.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +#include "tao/orbconf.h" + +#include "tao/Policy_ForwardC.h" + +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + +namespace TAO +{ + /** + * @class IORInterceptor_Details + * + * @brief The policy-driven details for a registered IOR interceptor + * + * Each time an IOR interceptor is registered with an ORB, an + * IORInterceptor_Details object will be created and associated with + * the registered IOR interceptor. If the interceptor is + * registered with policies, the policies will be used to adjust the + * values in the IORInterceptor_Details appropriately. + * + * Currently, there are no policies that are applicable to + * IOR Interceptors. + */ + class IORInterceptor_Details + { + public: + + IORInterceptor_Details (void); + ~IORInterceptor_Details (void); + + void apply_policies (const CORBA::PolicyList& policies + ACE_ENV_ARG_DECL); + }; +} + +TAO_END_VERSIONED_NAMESPACE_DECL + +#if defined (__ACE_INLINE__) +#include "IORInterceptor_Details.inl" +#endif /* __ACE_INLINE__ */ + +#include /**/ "ace/post.h" + +#endif /* TAO_IOR_INTERCEPTOR_DETAILS_H */ diff --git a/TAO/tao/IORInterceptor/IORInterceptor_Details.inl b/TAO/tao/IORInterceptor/IORInterceptor_Details.inl new file mode 100644 index 00000000000..a82589f3410 --- /dev/null +++ b/TAO/tao/IORInterceptor/IORInterceptor_Details.inl @@ -0,0 +1,20 @@ +// -*- C++ -*- +// +// $Id$ + +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + +namespace TAO +{ + ACE_INLINE + IORInterceptor_Details::IORInterceptor_Details (void) + { + } + + ACE_INLINE + IORInterceptor_Details::~IORInterceptor_Details (void) + { + } +} + +TAO_END_VERSIONED_NAMESPACE_DECL |