summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohnny Willemsen <jwillemsen@remedy.nl>2004-08-17 14:00:10 +0000
committerJohnny Willemsen <jwillemsen@remedy.nl>2004-08-17 14:00:10 +0000
commit003ec088ca038c86024fe556cea063bc3467aa12 (patch)
tree45d1a54c9e7bbaef6582047903ff6e75c8e83db2
parentcb227f9447c75ef6654359a858f31de7ae3993fb (diff)
downloadATCD-003ec088ca038c86024fe556cea063bc3467aa12.tar.gz
ChangeLogTag: Tue Aug 17 13:59:12 UTC 2004 Johnny Willemsen <jwillemsen@remedy.nl>
-rw-r--r--TAO/tao/IORInterceptor/IORInterceptor_List.cpp30
-rw-r--r--TAO/tao/IORInterceptor/IORInterceptor_List.h9
-rw-r--r--TAO/tao/PortableServer/ORTRework.txt10
3 files changed, 49 insertions, 0 deletions
diff --git a/TAO/tao/IORInterceptor/IORInterceptor_List.cpp b/TAO/tao/IORInterceptor/IORInterceptor_List.cpp
index d31f6348adc..111113c0c57 100644
--- a/TAO/tao/IORInterceptor/IORInterceptor_List.cpp
+++ b/TAO/tao/IORInterceptor/IORInterceptor_List.cpp
@@ -52,6 +52,36 @@ TAO_IORInterceptor_List::add_interceptor (
PortableInterceptor::IORInterceptor::_duplicate (interceptor);
}
+void
+TAO_IORInterceptor_List::adapter_state_changed (
+ const TAO_ObjectReferenceFactory_Array &array_obj_ref_template,
+ PortableInterceptor::AdapterState state
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ const size_t interceptor_count = this->interceptors_.size ();
+
+ if (interceptor_count == 0)
+ return;
+
+ PortableInterceptor::ObjectReferenceTemplateSeq seq_obj_ref_template;
+
+ seq_obj_ref_template.length (array_obj_ref_template.size());
+
+ for (size_t counter = 0; counter < array_obj_ref_template.size(); ++counter)
+ {
+ seq_obj_ref_template[counter] = array_obj_ref_template[counter];
+ }
+
+ for (size_t i = 0; i < interceptor_count; ++i)
+ {
+ this->interceptors_[i]->adapter_state_changed (seq_obj_ref_template,
+ state
+ ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK;
+ }
+
+}
#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
diff --git a/TAO/tao/IORInterceptor/IORInterceptor_List.h b/TAO/tao/IORInterceptor/IORInterceptor_List.h
index 3d77e7aec7a..1e7e4e6186f 100644
--- a/TAO/tao/IORInterceptor/IORInterceptor_List.h
+++ b/TAO/tao/IORInterceptor/IORInterceptor_List.h
@@ -25,6 +25,9 @@
#include "tao/Interceptor_List.h"
+typedef
+ACE_Array_Base<PortableInterceptor::ObjectReferenceTemplate*> TAO_ObjectReferenceFactory_Array;
+
/**
* @class TAO_IORInterceptor_List
*
@@ -53,6 +56,12 @@ public:
/// Return reference to the underlying Portable Interceptor array.
TYPE & interceptors (void);
+ void adapter_state_changed (
+ const TAO_ObjectReferenceFactory_Array &array_obj_ref_template,
+ PortableInterceptor::AdapterState state
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException));
+
protected:
/// Return the length of the underlying interceptor array.
diff --git a/TAO/tao/PortableServer/ORTRework.txt b/TAO/tao/PortableServer/ORTRework.txt
index fdbef433644..3bb23baf8fe 100644
--- a/TAO/tao/PortableServer/ORTRework.txt
+++ b/TAO/tao/PortableServer/ORTRework.txt
@@ -1,3 +1,13 @@
+Tue Aug 17 13:59:12 UTC 2004 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tao/IORInterceptor/IORInterceptor_List/{h,cpp}:
+ Added adapter_state_changed, this gets a normal
+ TAO_ObjectReferenceTemplate_Array, converts this into a corba
+ sequence and calls adapter_state_change for each interceptor.
+
+ * tao/PortableServer/diffs/Default_ORT.diff:
+ Zap this file
+
Tue Aug 17 10:31:12 UTC 2004 Johnny Willemsen <jwillemsen@remedy.nl>
* tao/PortableServer/ObjectReferenceTemplate_Adapter.h: