diff options
author | Johnny Willemsen <jwillemsen@remedy.nl> | 2004-08-17 14:00:10 +0000 |
---|---|---|
committer | Johnny Willemsen <jwillemsen@remedy.nl> | 2004-08-17 14:00:10 +0000 |
commit | 003ec088ca038c86024fe556cea063bc3467aa12 (patch) | |
tree | 45d1a54c9e7bbaef6582047903ff6e75c8e83db2 | |
parent | cb227f9447c75ef6654359a858f31de7ae3993fb (diff) | |
download | ATCD-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.cpp | 30 | ||||
-rw-r--r-- | TAO/tao/IORInterceptor/IORInterceptor_List.h | 9 | ||||
-rw-r--r-- | TAO/tao/PortableServer/ORTRework.txt | 10 |
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: |