diff options
author | sma <sma@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2006-02-10 14:59:57 +0000 |
---|---|---|
committer | sma <sma@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2006-02-10 14:59:57 +0000 |
commit | 6dc1115df4db4bd1e19f041cf2d3876b074c1a21 (patch) | |
tree | 40b19a3ae7b54b3ddda1041dcee386070e4ba9fe | |
parent | 2571b8de84ea915dbc709f2c3e6086cbe120816d (diff) | |
download | ATCD-6dc1115df4db4bd1e19f041cf2d3876b074c1a21.tar.gz |
ChangeLogTag: Fri Feb 10 15:00:00 UTC 2006 Simon Massey <sma@prismtech.com>
-rw-r--r-- | TAO/ChangeLog | 9 | ||||
-rw-r--r-- | TAO/tao/PI_Server/ServerInterceptorAdapter.cpp | 93 | ||||
-rw-r--r-- | TAO/tao/PortableServer/Object_Adapter.cpp | 2 | ||||
-rw-r--r-- | TAO/tao/ServerRequestInterceptor_Adapter.h | 4 |
4 files changed, 74 insertions, 34 deletions
diff --git a/TAO/ChangeLog b/TAO/ChangeLog index c975101ea78..c544c95eaa8 100644 --- a/TAO/ChangeLog +++ b/TAO/ChangeLog @@ -1,3 +1,12 @@ +Fri Feb 10 15:00:00 UTC 2006 Simon Massey <sma@prismtech.com> + + * tao/ServerRequestInterceptor_Adapter.h + * tao/PI_Server/ServerInterceptorAdapter.cpp: + * tao/PortableServer/Object_Adapter.cpp: + Correct compile problems for TAO_HAS_EXTENDED_FT_INTERCEPTORS + builds. This build configuration has been left behind with + recent changes. + Fri Feb 10 14:35:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> * orbsvcs/tests/EC_Mcast/run_test.pl: diff --git a/TAO/tao/PI_Server/ServerInterceptorAdapter.cpp b/TAO/tao/PI_Server/ServerInterceptorAdapter.cpp index 5895ef5cbf1..cb30a798acb 100644 --- a/TAO/tao/PI_Server/ServerInterceptorAdapter.cpp +++ b/TAO/tao/PI_Server/ServerInterceptorAdapter.cpp @@ -39,12 +39,19 @@ TAO::ServerRequestInterceptor_Adapter_Impl::tao_ft_interception_point ( { // This method implements one of the "starting" server side // interception point. - bool is_remote_request = !server_request.collocated (); ACE_TRY { oc = 0; + bool is_remote_request = !server_request.collocated (); + TAO::ServerRequestInfo request_info (server_request, + args, + nargs, + servant_upcall, + exceptions, + nexceptions); + for (size_t i = 0 ; i < this->interceptor_list_.size(); ++i) { ServerRequestInterceptor_List::RegisteredInterceptor& registered = @@ -53,7 +60,7 @@ TAO::ServerRequestInterceptor_Adapter_Impl::tao_ft_interception_point ( if (registered.details_.should_be_processed (is_remote_request)) { registered.interceptor_-> - tao_ft_interception_point (ri, + tao_ft_interception_point (&request_info, oc ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; @@ -61,7 +68,12 @@ TAO::ServerRequestInterceptor_Adapter_Impl::tao_ft_interception_point ( if (oc != 0) { - (void) this->send_other (ri + (void) this->send_other (server_request, + args, + nargs, + servant_upcall, + exceptions, + nexceptions ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; @@ -75,12 +87,16 @@ TAO::ServerRequestInterceptor_Adapter_Impl::tao_ft_interception_point ( } ACE_CATCH (PortableInterceptor::ForwardRequest, exc) { - ri->forward_reference (exc); - this->send_other (ri - ACE_ENV_ARG_PARAMETER); + server_request.forward_location (exc.forward.in ()); + server_request.reply_status (PortableInterceptor::LOCATION_FORWARD); + (void) this->send_other (server_request, + args, + nargs, + servant_upcall, + exceptions, + nexceptions + ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; - - this->location_forwarded_ = true; } ACE_ENDTRY; ACE_CHECK; @@ -98,9 +114,8 @@ TAO::ServerRequestInterceptor_Adapter_Impl::receive_request_service_contexts ( { // This method implements one of the "intermediate" server side // interception point. - bool is_remote_request = !server_request.collocated (); - if (this->interceptor_list_.size() != this->server_request.interceptor_count ()) + if (this->interceptor_list_.size() != server_request.interceptor_count ()) { // This method (i.e. the receive_request() interception point) // should only be invoked if all of the interceptors registered @@ -119,9 +134,17 @@ TAO::ServerRequestInterceptor_Adapter_Impl::receive_request_service_contexts ( // current (TSC) upon leaving this scope, i.e. just after the // receive_request_service_contexts() completes. A "guard" is // used to make the copy also occur if an exception is thrown. - TAO::PICurrent_Guard const pi_guard (ri->server_request (), + TAO::PICurrent_Guard const pi_guard (server_request, false /* Copy RSC to TSC */); + bool is_remote_request = !server_request.collocated (); + TAO::ServerRequestInfo request_info (server_request, + args, + nargs, + servant_upcall, + exceptions, + nexceptions); + for (size_t i = 0 ; i < server_request.interceptor_count (); ++i) { ServerRequestInterceptor_List::RegisteredInterceptor& registered = @@ -130,7 +153,7 @@ TAO::ServerRequestInterceptor_Adapter_Impl::receive_request_service_contexts ( if (registered.details_.should_be_processed (is_remote_request)) { registered.interceptor_-> - receive_request_service_contexts (ri + receive_request_service_contexts (&request_info ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; } @@ -138,12 +161,16 @@ TAO::ServerRequestInterceptor_Adapter_Impl::receive_request_service_contexts ( } ACE_CATCH (PortableInterceptor::ForwardRequest, exc) { - ri->forward_reference (exc); - this->send_other (ri - ACE_ENV_ARG_PARAMETER); + server_request.forward_location (exc.forward.in ()); + server_request.reply_status (PortableInterceptor::LOCATION_FORWARD); + (void) this->send_other (server_request, + args, + nargs, + servant_upcall, + exceptions, + nexceptions + ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; - - this->location_forwarded_ = true; } ACE_ENDTRY; ACE_CHECK; @@ -167,15 +194,6 @@ TAO::ServerRequestInterceptor_Adapter_Impl::receive_request_service_contexts ( // This method implements one of the "starting" server side // interception point if extended interceptors are not in place. - bool is_remote_request = !server_request.collocated (); - - TAO::ServerRequestInfo request_info (server_request, - args, - nargs, - servant_upcall, - exceptions, - nexceptions); - ACE_TRY { // Copy the request scope current (RSC) to the thread scope @@ -185,6 +203,15 @@ TAO::ServerRequestInterceptor_Adapter_Impl::receive_request_service_contexts ( TAO::PICurrent_Guard const pi_guard (server_request, false /* Copy RSC to TSC */); + bool is_remote_request = !server_request.collocated (); + + TAO::ServerRequestInfo request_info (server_request, + args, + nargs, + servant_upcall, + exceptions, + nexceptions); + for (size_t i = 0 ; i < this->interceptor_list_.size(); ++i) { ServerRequestInterceptor_List::RegisteredInterceptor& registered = @@ -207,13 +234,13 @@ TAO::ServerRequestInterceptor_Adapter_Impl::receive_request_service_contexts ( { server_request.forward_location (exc.forward.in ()); server_request.reply_status (PortableInterceptor::LOCATION_FORWARD); - this->send_other (server_request, - args, - nargs, - servant_upcall, - exceptions, - nexceptions - ACE_ENV_ARG_PARAMETER); + (void) this->send_other (server_request, + args, + nargs, + servant_upcall, + exceptions, + nexceptions + ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; } ACE_ENDTRY; diff --git a/TAO/tao/PortableServer/Object_Adapter.cpp b/TAO/tao/PortableServer/Object_Adapter.cpp index 53f866ef536..261a53e1b94 100644 --- a/TAO/tao/PortableServer/Object_Adapter.cpp +++ b/TAO/tao/PortableServer/Object_Adapter.cpp @@ -741,7 +741,7 @@ TAO_Object_Adapter::dispatch (TAO::ObjectKey &key, { #if TAO_HAS_EXTENDED_FT_INTERCEPTORS == 1 CORBA::OctetSeq_var ocs; - sri_adapter.tao_ft_interception_point (request, + sri_adapter->tao_ft_interception_point (request, 0, // args 0, // nargs 0, // servant_upcall diff --git a/TAO/tao/ServerRequestInterceptor_Adapter.h b/TAO/tao/ServerRequestInterceptor_Adapter.h index 2781dc111c2..37907fa1465 100644 --- a/TAO/tao/ServerRequestInterceptor_Adapter.h +++ b/TAO/tao/ServerRequestInterceptor_Adapter.h @@ -27,6 +27,10 @@ #include "ace/CORBA_macros.h" #include "tao/SystemException.h" +#if TAO_HAS_EXTENDED_FT_INTERCEPTORS == 1 +# include "tao/OctetSeqC.h" +#endif /*TAO_HAS_EXTENDED_FT_INTERCEPTORS*/ + TAO_BEGIN_VERSIONED_NAMESPACE_DECL namespace PortableInterceptor |