summaryrefslogtreecommitdiff
path: root/TAO/tao/IORInterceptor
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/tao/IORInterceptor')
-rw-r--r--TAO/tao/IORInterceptor/IORInterceptor_Adapter_Impl.cpp13
-rw-r--r--TAO/tao/IORInterceptor/IORInterceptor_Adapter_Impl.h9
-rw-r--r--TAO/tao/IORInterceptor/IORInterceptor_Details.cpp28
-rw-r--r--TAO/tao/IORInterceptor/IORInterceptor_Details.h71
-rw-r--r--TAO/tao/IORInterceptor/IORInterceptor_Details.inl20
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