diff options
Diffstat (limited to 'TAO')
82 files changed, 923 insertions, 1167 deletions
diff --git a/TAO/ChangeLog b/TAO/ChangeLog index 4ef8b2ac2bd..3a824f7304b 100644 --- a/TAO/ChangeLog +++ b/TAO/ChangeLog @@ -1,3 +1,193 @@ +Tue Jul 12 10:05:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * tests/Bug_2174_Regression/Bug_2174_Regression.mpc: + Don't build the client when minimum_corba is set + + * tao/CONV_FRAME.pidl: + * tao/GIOP.pidl + Updated regeneration instructions + + * tao/CONV_FRAMES_T.h: + * tao/GIOPS_T.h + Removed this file + + * tao/ClientRequestInfo.{h,cpp} + * tao/ClientRequestInfo.pidl: + * tao/ClientRequestInfoA.cpp + * tao/ClientRequestInfoC.{h,cpp}: + * tao/ClientRequestInfoS.h: + * tao/PIForwardRequest.pidl + * tao/PIForwardRequestA.cpp + * tao/PIForwardRequestC.{h,cpp}: + * tao/PIForwardRequestS.h + * tao/RequestInfo.pidl + * tao/RequestInfoA.cpp: + * tao/RequestInfoC.{h,cpp}: + * tao/RequestInfoS.h: + These files are moved to the PI library + + * tao/ClientRequestInterceptor_Adapter.h: + Don't pass TAO_ClientRequestInfo with each invocation, + an instance is allocated within the adapter implementation. + Also added a method to get the PortableInterceptor::ReplyStatus + from a TAO::Invocation_Base + + * tao/Collocation_Resolver.cpp: + * tao/Protocol_Factory.cpp: + * tao/Protocols_Hooks.cpp: + * tao/Tagged_Components.cpp: + Removed explicit template instantiations + + * tao/IIOP_Profile.h: + * tao/Profile.h: + Moved destructor to protected part to make sure an instance + is only removed by the _decr_refcnt + + * tao/Invocation_Base.{h,cpp,inl}: + Reworked the invocation path to invoke the client request + interceptor when it is set and don't create a TAO_ClientRequestInfo + on the stack, this is done in the PI adapter. Store the invoke_status + and caught_exception as members in this class, this was done + previously in the TAO_ClientRequestInfo, but this is now not + used anymore in the TAO lib + + * tao/MProfile.h: + Doxygen improvement + + * tao/Makefile.am: + Updated because of moving of files + + * tao/ORB_Core.h: + No need to forward declare TAO_ServerRequest + + * tao/PortableInterceptor.pidl: + * tao/PortableInterceptorC.h: + Removed the files we moved to PI/PI_Server + + * tao/ServerRequestInfo.pidl: + * tao/ServerRequestInfoA.cpp: + * tao/ServerRequestInfoC.{h,cpp}: + * tao/ServerRequestInfoS.h: + Moved to the PI_Server lib + + * tao/ServerRequestInterceptor_Adapter.h: + Updated to not pass TAO_ServerRequestInfo with each call, pass + the difference exception info + + * tao/Stub.{h,cpp}: + Removed service_profile_selection(), this was marked deprecated for + a long time. + + * tao/Synch_Invocation.cpp: + Fixed incorrect emulated exception usage + + * tao/TAO_Server_Request.{h,cpp,i}: + Added data members which where previous in TAO_ServerRequestInfo + + * tao/Transport.{h,cpp,inl}: + Removed TAO_Transport_Refcount_Guard, not used + + * tao/tao.mpc: + Updated + + * tao/PI/ClientRequestInfo.{cpp,h}: + * tao/PI/ClientRequestInfo.pidl: + * tao/PI/ClientRequestInfoA.cpp" + * tao/PI/ClientRequestInfoC.{h,cpp}: + * tao/PI/ClientRequestInfoS.h: + These files moved here from the TAO core library + + * tao/PI/ClientRequestInterceptor.pidl: + Updated includes because of moved files + + * tao/PI/ClientRequestInterceptorA.cpp: + * tao/PI/ClientRequestInterceptorC.{h,cpp}: + * tao/PI/ClientRequestInterceptorS.h: + Regenerated + + * tao/PI/ClientRequestInterceptor_Adapter_Impl.{h,cpp}: + Allocate a TAO_ClientRequestInfo on the stack for each + interception point and updated for base interface + + * tao/PI/InterceptorA.cpp + * tao/PI/InterceptorC.{h,cpp}: + * tao/PI/InterceptorS.h: + * tao/PI/ORBInitInfoA.cpp: + * tao/PI/ORBInitInfoC.{h,cpp}: + * tao/PI/ORBInitInfoS.h: + * tao/PI/ORBInitializerA.cpp: + * tao/PI/ORBInitializerC.{h,cpp}: + * tao/PI/ORBInitializerS.h: + Regenerated + + * tao/PI/PI.h: + Include new *C.h files + + * tao/PI/PIForwardRequest.pidl + * tao/PI/PIForwardRequestA.cpp + * tao/PI/PIForwardRequestC.{h,cpp}: + * tao/PI/PIForwardRequestS.h: + * tao/PI/RequestInfo.pidl: + * tao/PI/RequestInfoA.cpp: + * tao/PI/RequestInfoC.{h,cpp}: + * tao/PI/RequestInfoS.h: + Moved from the TAO lib + + * tao/PI_Server/PI_Server.h: + Added new *C.h files + + * tao/PI_Server/ServerInterceptorAdapter.{h,cpp}: + Allocate a TAO_ServerRequestInfo for each interception point + + * tao/PI_Server/ServerRequestInfo.{h,cpp,inl}: + * tao/PI_Server/ServerRequestInfo.pidl: + * tao/PI_Server/ServerRequestInfoA.cpp: + * tao/PI_Server/ServerRequestInfoC.{h,cpp}: + * tao/PI_Server/ServerRequestInfoS.h: + Moved from the PortableServer lib + + * tao/PI_Server/ServerRequestInterceptor.pidl: + Updated includes + + * tao/PI_Server/ServerRequestInterceptorC.h: + Regenerated + + * tao/PortableServer/Basic_SArguments.cpp: + * tao/PortableServer/Special_Basic_SArguments.cpp: + * tao/PortableServer/UB_String_SArguments.cpp + Removed, not needed + + * tao/PortableServer/ServerRequestInfo.{h,cpp,inl}: + Moved to the PI_Server lib + + * tao/PortableServer/Local_Servant_Base.inl: + Removed commented out code + + * tao/PortableServer/ORT_Adapter.cpp: + * tao/PortableServer/ORT_Adapter_Factory.cpp: + * tao/PortableServer/StrategyFactory.cpp: + Removed explicit templates + + * tao/PortableServer/Object_Adapter.cpp: + * tao/PortableServer/Upcall_Wrapper.cpp: + Updated code because of changes ServerRequestInterceptor + adapter change + + * tao/RTCORBA/RT_ORBInitializer.cpp: + Initialise pointer with 0 + + * tao/RTScheduling/RTScheduler.pidl: + Updated include + + * tao/RTScheduling/RTSchedulerC.h: + Regenerated + + * tests/Big_Twoways/Peer.cpp: + Initialise pointer with 0 + + * tests/Portable_Interceptors/ForwardRequest/Server_Request_Interceptor.h: + Added needed include + Mon Jul 11 13:39:34 2005 Gary Maxey <gary.maxey@hp.com> * TAO_IDL/be/be_visitor_valuebox/valuebox_cs.cpp: diff --git a/TAO/tao/CONV_FRAME.pidl b/TAO/tao/CONV_FRAME.pidl index 060eeb32c25..3f4684f6fb2 100644 --- a/TAO/tao/CONV_FRAME.pidl +++ b/TAO/tao/CONV_FRAME.pidl @@ -7,7 +7,7 @@ * following command: * * tao_idl - * -o orig -Ge 1 -GA -SS -Sci + * -o orig -Ge 1 -GA -SS -Sci -Sc * -Wb,export_macro=TAO_Export * -Wb,export_include="tao/TAO_Export.h" * -Wb,pre_include="ace/pre.h" diff --git a/TAO/tao/CONV_FRAMES_T.h b/TAO/tao/CONV_FRAMES_T.h deleted file mode 100644 index a0f8069f180..00000000000 --- a/TAO/tao/CONV_FRAMES_T.h +++ /dev/null @@ -1,58 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - -// **** Code generated by the The ACE ORB (TAO) IDL Compiler **** -// TAO and the TAO IDL Compiler have been developed by: -// Center for Distributed Object Computing -// Washington University -// St. Louis, MO -// USA -// http://www.cs.wustl.edu/~schmidt/doc-center.html -// and -// Distributed Object Computing Laboratory -// University of California at Irvine -// Irvine, CA -// USA -// http://doc.ece.uci.edu/ -// and -// Institute for Software Integrated Systems -// Vanderbilt University -// Nashville, TN -// USA -// http://www.isis.vanderbilt.edu/ -// -// Information about TAO is available at: -// http://www.cs.wustl.edu/~schmidt/TAO.html - -// TAO_IDL - Generated from -// be\be_codegen.cpp:547 - -#ifndef _TAO_IDL_ORIG_CONV_FRAMES_T_H_ -#define _TAO_IDL_ORIG_CONV_FRAMES_T_H_ - -#include /**/ "ace/pre.h" - -#if defined(_MSC_VER) -#pragma warning(push) -#pragma warning(disable:4250) -#endif /* _MSC_VER */ - - -// TAO_IDL - Generated from -// be\be_visitor_root/root_sth.cpp:116 - -namespace POA_CONV_FRAME -{ -} // module CONV_FRAME - -// TAO_IDL - Generated from -// be\be_codegen.cpp:1096 - -#if defined(_MSC_VER) -#pragma warning(pop) -#endif /* _MSC_VER */ - -#include /**/ "ace/post.h" -#endif /* ifndef */ - diff --git a/TAO/tao/ClientRequestInterceptor_Adapter.h b/TAO/tao/ClientRequestInterceptor_Adapter.h index e04c99f503c..7ccb34738c9 100644 --- a/TAO/tao/ClientRequestInterceptor_Adapter.h +++ b/TAO/tao/ClientRequestInterceptor_Adapter.h @@ -28,6 +28,7 @@ #include "ace/CORBA_macros.h" #include "tao/SystemException.h" +#include "tao/Invocation_Utils.h" class TAO_ClientRequestInfo; @@ -35,6 +36,8 @@ namespace PortableInterceptor { class ClientRequestInterceptor; typedef ClientRequestInterceptor *ClientRequestInterceptor_ptr; + + typedef CORBA::Short ReplyStatus; } namespace TAO @@ -67,26 +70,22 @@ namespace TAO //@{ /// This method implements one of the "starting" client side /// interception points. - virtual void send_request (Invocation_Base &invocation, - TAO_ClientRequestInfo *ri + virtual void send_request (Invocation_Base &invocation ACE_ENV_ARG_DECL) = 0; /// This method implements one of the "ending" client side /// interception point. - virtual void receive_reply (Invocation_Base &invocation, - TAO_ClientRequestInfo *ri + virtual void receive_reply (Invocation_Base &invocation ACE_ENV_ARG_DECL) = 0; /// This method implements one of the "ending" client side /// interception point. - virtual void receive_exception (Invocation_Base &invocation, - TAO_ClientRequestInfo *ri + virtual void receive_exception (Invocation_Base &invocation ACE_ENV_ARG_DECL) = 0; /// This method implements one of the "ending" client side /// interception point. - virtual void receive_other (Invocation_Base &invocation, - TAO_ClientRequestInfo *ri + virtual void receive_other (Invocation_Base &invocation ACE_ENV_ARG_DECL) = 0; /// Register an interceptor. @@ -95,6 +94,10 @@ namespace TAO ACE_ENV_ARG_DECL) = 0; virtual void destroy_interceptors (ACE_ENV_SINGLE_ARG_DECL) = 0; + + /// Convert TAO Invocation status to a PI status + virtual PortableInterceptor::ReplyStatus reply_status ( + TAO::Invocation_Base const &invocation_base) = 0; }; } diff --git a/TAO/tao/Collocation_Resolver.cpp b/TAO/tao/Collocation_Resolver.cpp index 3a4c9284555..1f752fccc89 100644 --- a/TAO/tao/Collocation_Resolver.cpp +++ b/TAO/tao/Collocation_Resolver.cpp @@ -11,12 +11,3 @@ TAO_Collocation_Resolver::~TAO_Collocation_Resolver (void) { } -#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) - -template class ACE_Dynamic_Service<TAO_Collocation_Resolver>; - -#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) - -#pragma instantiate ACE_Dynamic_Service<TAO_Collocation_Resolver> - -#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ diff --git a/TAO/tao/GIOP.pidl b/TAO/tao/GIOP.pidl index 5d569722cb1..6dc8616bdb6 100644 --- a/TAO/tao/GIOP.pidl +++ b/TAO/tao/GIOP.pidl @@ -14,7 +14,7 @@ // is: // // tao_idl -// -o orig -Ge 1 -GA -I.. -SS +// -o orig -Ge 1 -GA -I.. -SS -Sc // -Wb,export_macro=TAO_Export // -Wb,export_include="tao/TAO_Export.h" // -Wb,pre_include="ace/pre.h" diff --git a/TAO/tao/GIOPS_T.h b/TAO/tao/GIOPS_T.h deleted file mode 100644 index 00b7bc96ea7..00000000000 --- a/TAO/tao/GIOPS_T.h +++ /dev/null @@ -1,58 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - -// **** Code generated by the The ACE ORB (TAO) IDL Compiler **** -// TAO and the TAO IDL Compiler have been developed by: -// Center for Distributed Object Computing -// Washington University -// St. Louis, MO -// USA -// http://www.cs.wustl.edu/~schmidt/doc-center.html -// and -// Distributed Object Computing Laboratory -// University of California at Irvine -// Irvine, CA -// USA -// http://doc.ece.uci.edu/ -// and -// Institute for Software Integrated Systems -// Vanderbilt University -// Nashville, TN -// USA -// http://www.isis.vanderbilt.edu/ -// -// Information about TAO is available at: -// http://www.cs.wustl.edu/~schmidt/TAO.html - -// TAO_IDL - Generated from -// be\be_codegen.cpp:547 - -#ifndef _TAO_IDL_ORIG_GIOPS_T_H_ -#define _TAO_IDL_ORIG_GIOPS_T_H_ - -#include /**/ "ace/pre.h" - -#if defined(_MSC_VER) -#pragma warning(push) -#pragma warning(disable:4250) -#endif /* _MSC_VER */ - - -// TAO_IDL - Generated from -// be\be_visitor_root/root_sth.cpp:116 - -namespace POA_GIOP -{ -} // module GIOP - -// TAO_IDL - Generated from -// be\be_codegen.cpp:1096 - -#if defined(_MSC_VER) -#pragma warning(pop) -#endif /* _MSC_VER */ - -#include /**/ "ace/post.h" -#endif /* ifndef */ - diff --git a/TAO/tao/GIOP_Message_Generator_Parser_12.cpp b/TAO/tao/GIOP_Message_Generator_Parser_12.cpp index 411058acd2a..34673f5d4af 100644 --- a/TAO/tao/GIOP_Message_Generator_Parser_12.cpp +++ b/TAO/tao/GIOP_Message_Generator_Parser_12.cpp @@ -5,7 +5,7 @@ #include "tao/operation_details.h" #include "tao/debug.h" #include "tao/Pluggable_Messaging_Utils.h" -#include "tao/GIOP_Message_State.h" +#include "tao/GIOP_Message_State.h" #include "tao/TAO_Server_Request.h" #include "tao/TAOC.h" #include "tao/ORB_Core.h" diff --git a/TAO/tao/IIOP_Profile.h b/TAO/tao/IIOP_Profile.h index cf3bf2880a2..b7f2f43e46f 100644 --- a/TAO/tao/IIOP_Profile.h +++ b/TAO/tao/IIOP_Profile.h @@ -67,9 +67,6 @@ public: /// Profile constructor, default. TAO_IIOP_Profile (TAO_ORB_Core *orb_core); - /// Destructor is to be called only through <_decr_refcnt>. - ~TAO_IIOP_Profile (void); - /// Template methods. Please see Profile.h for documentation. virtual char * to_string (ACE_ENV_SINGLE_ARG_DECL); @@ -92,6 +89,9 @@ public: void add_endpoint (TAO_IIOP_Endpoint *endp); protected: + /// Destructor is to be called only through <_decr_refcnt>. + ~TAO_IIOP_Profile (void); + /** * Helper method for encode_endpoints to deal with RT requests. * diff --git a/TAO/tao/Invocation_Base.cpp b/TAO/tao/Invocation_Base.cpp index 65ddc0b826f..bcfa3ff6cef 100644 --- a/TAO/tao/Invocation_Base.cpp +++ b/TAO/tao/Invocation_Base.cpp @@ -41,8 +41,9 @@ namespace TAO , stub_ (stub) #if TAO_HAS_INTERCEPTORS == 1 , adapter_ (orb_core_->clientrequestinterceptor_adapter ()) - , req_info_ (this) , stack_size_ (0) + , invoke_status_ (TAO_INVOKE_START) + , caught_exception_ (0) #endif /*TAO_HAS_INTERCEPTORS == 1*/ { } @@ -57,7 +58,7 @@ namespace TAO void Invocation_Base::reply_received (Invocation_Status TAO_INTERCEPTOR (s)) { - TAO_INTERCEPTOR (this->req_info_.reply_status (s)); + TAO_INTERCEPTOR (invoke_status_ = s); } TAO_Service_Context & @@ -149,8 +150,7 @@ namespace TAO { ACE_TRY { - this->adapter_->send_request (*this, - &this->req_info_ + this->adapter_->send_request (*this ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; } @@ -193,8 +193,7 @@ namespace TAO { ACE_TRY { - this->adapter_->receive_reply (*this, - &this->req_info_ + this->adapter_->receive_reply (*this ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; } @@ -220,8 +219,7 @@ namespace TAO ACE_CHECK_RETURN (TAO_INVOKE_FAILURE); const PortableInterceptor::ReplyStatus status = - this->req_info_.reply_status (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (TAO_INVOKE_FAILURE); + this->adapter_->reply_status (*this); if (status == PortableInterceptor::LOCATION_FORWARD || status == PortableInterceptor::TRANSPORT_RETRY) @@ -240,8 +238,7 @@ namespace TAO { ACE_TRY { - this->adapter_->receive_other (*this, - &this->req_info_ + this->adapter_->receive_other (*this ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; } @@ -277,19 +274,20 @@ namespace TAO Invocation_Base::handle_any_exception (CORBA::Exception *ex ACE_ENV_ARG_DECL) { - this->req_info_.exception (ex); + caught_exception_ = ex; + + PortableInterceptor::ReplyStatus status = + PortableInterceptor::SYSTEM_EXCEPTION; if (adapter_ != 0) { - this->adapter_->receive_exception (*this, - &this->req_info_ + this->adapter_->receive_exception (*this ACE_ENV_ARG_PARAMETER); ACE_CHECK_RETURN (PortableInterceptor::UNKNOWN); - } - const PortableInterceptor::ReplyStatus status = - this->req_info_.reply_status (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (status); + status = + this->adapter_->reply_status (*this); + } return status; } @@ -297,24 +295,42 @@ namespace TAO PortableInterceptor::ReplyStatus Invocation_Base::handle_all_exception (ACE_ENV_SINGLE_ARG_DECL) { - CORBA::UNKNOWN ex; - - this->req_info_.exception (&ex); + PortableInterceptor::ReplyStatus status = + PortableInterceptor::SYSTEM_EXCEPTION; if (adapter_ != 0) { - this->adapter_->receive_exception (*this, - &this->req_info_ + CORBA::UNKNOWN ex; + this->caught_exception_ = &ex; + + this->adapter_->receive_exception (*this ACE_ENV_ARG_PARAMETER); ACE_CHECK_RETURN (PortableInterceptor::UNKNOWN); - } - const PortableInterceptor::ReplyStatus status = - this->req_info_.reply_status (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (status); + status = + this->adapter_->reply_status (*this); + } return status; } + void + Invocation_Base::exception (CORBA::Exception *exception) + { + this->caught_exception_ = exception; + } + + PortableInterceptor::ReplyStatus + Invocation_Base::reply_status (void) const + { + if (adapter_ != 0) + { + return this->adapter_->reply_status (*this); + } + else + { + return -1; + } + } #endif /*TAO_HAS_INTERCEPTORS == 1*/ } diff --git a/TAO/tao/Invocation_Base.h b/TAO/tao/Invocation_Base.h index c905410d662..65288736ecd 100644 --- a/TAO/tao/Invocation_Base.h +++ b/TAO/tao/Invocation_Base.h @@ -25,7 +25,7 @@ #include "tao/Invocation_Utils.h" #if TAO_HAS_INTERCEPTORS == 1 -#include "tao/ClientRequestInfo.h" +#include "tao/PI_ForwardC.h" #include "tao/ClientRequestInterceptor_Adapter.h" #endif /* TAO_HAS_INTERCEPTORS == 1 */ @@ -202,6 +202,16 @@ namespace TAO */ size_t &stack_size (void); + CORBA::Exception *caught_exception (void); + + /// Change the exception status. + void exception (CORBA::Exception *exception); + + /// Invoke status + TAO::Invocation_Status invoke_status (void) const; + + PortableInterceptor::ReplyStatus reply_status (void) const; + protected: /// Helper method to invoke send_request interception call to all /// the registered interceptors. @@ -228,11 +238,15 @@ namespace TAO handle_all_exception (ACE_ENV_SINGLE_ARG_DECL); protected: - /// The client requestor adapter and the request info object for - /// making calls on all the registered interceptors. + /// The client requestor adapter ClientRequestInterceptor_Adapter *adapter_; - TAO_ClientRequestInfo req_info_; + size_t stack_size_; + + TAO::Invocation_Status invoke_status_; + + /// Pointer to the caught exception. + CORBA::Exception *caught_exception_; #endif /*TAO_HAS_INTERCEPTORS*/ //@} }; diff --git a/TAO/tao/Invocation_Base.inl b/TAO/tao/Invocation_Base.inl index f6684bffba0..cf534126a6a 100644 --- a/TAO/tao/Invocation_Base.inl +++ b/TAO/tao/Invocation_Base.inl @@ -60,7 +60,19 @@ namespace TAO ACE_INLINE size_t & Invocation_Base::stack_size (void) { - return stack_size_; + return this->stack_size_; + } + + ACE_INLINE CORBA::Exception * + Invocation_Base::caught_exception (void) + { + return this->caught_exception_; + } + + ACE_INLINE TAO::Invocation_Status + Invocation_Base::invoke_status (void) const + { + return this->invoke_status_; } #endif /*TAO_HAS_INTERCEPTORS*/ diff --git a/TAO/tao/Makefile.am b/TAO/tao/Makefile.am index 14a1c6d7948..aa10f7b163d 100644 --- a/TAO/tao/Makefile.am +++ b/TAO/tao/Makefile.am @@ -418,7 +418,6 @@ nobase_include_HEADERS = \ CONV_FRAME.pidl \ CONV_FRAMEC.h \ CONV_FRAMES.h \ - CONV_FRAMES_T.h \ CORBALOC_Parser.h \ CORBALOC_Parser.i \ CORBANAME_Parser.h \ @@ -519,7 +518,6 @@ nobase_include_HEADERS = \ GIOPC.h \ GIOPC.inl \ GIOPS.h \ - GIOPS_T.h \ GIOP_Message_Base.h \ GIOP_Message_Generator_Parser.h \ GIOP_Message_Generator_Parser_10.h \ @@ -1156,7 +1154,6 @@ libTAO_PortableServer_la_SOURCES = \ PortableServer/AdapterActivatorA.cpp \ PortableServer/AdapterActivatorC.cpp \ PortableServer/Adapter_Activator.cpp \ - PortableServer/Basic_SArguments.cpp \ PortableServer/Collocated_Object_Proxy_Broker.cpp \ PortableServer/Creation_Time.cpp \ PortableServer/Default_Acceptor_Filter.cpp \ @@ -1258,7 +1255,6 @@ libTAO_PortableServer_la_SOURCES = \ PortableServer/Servant_Dispatcher.cpp \ PortableServer/Servant_Upcall.cpp \ PortableServer/ServerRequestInfo.cpp \ - PortableServer/Special_Basic_SArguments.cpp \ PortableServer/StrategyFactory.cpp \ PortableServer/ThreadPolicy.cpp \ PortableServer/ThreadPolicyA.cpp \ @@ -1268,7 +1264,6 @@ libTAO_PortableServer_la_SOURCES = \ PortableServer/ThreadStrategyORBControl.cpp \ PortableServer/ThreadStrategySingle.cpp \ PortableServer/ThreadStrategySingleFactoryImpl.cpp \ - PortableServer/UB_String_SArguments.cpp \ PortableServer/Upcall_Command.cpp \ PortableServer/Upcall_Wrapper.cpp diff --git a/TAO/tao/Messaging/Messaging.pidl b/TAO/tao/Messaging/Messaging.pidl index 874604b6bbe..f7b40f5eb1e 100644 --- a/TAO/tao/Messaging/Messaging.pidl +++ b/TAO/tao/Messaging/Messaging.pidl @@ -36,7 +36,6 @@ #ifndef TAO_MESSAGING_PIDL #define TAO_MESSAGING_PIDL -#include "tao/Pollable.pidl" #include "tao/Messaging/Messaging_SyncScope_Policy.pidl" #include "tao/Messaging/Messaging_RT_Policy.pidl" #include "tao/Messaging/Messaging_No_Impl.pidl" diff --git a/TAO/tao/Messaging/MessagingC.h b/TAO/tao/Messaging/MessagingC.h index b71ef60b124..0e6807184ed 100644 --- a/TAO/tao/Messaging/MessagingC.h +++ b/TAO/tao/Messaging/MessagingC.h @@ -55,7 +55,6 @@ #include "tao/Valuetype/Value_VarOut_T.h" #include "tao/Objref_VarOut_T.h" -#include "tao/PollableC.h" #include "tao/Messaging/Messaging_SyncScope_PolicyC.h" #include "tao/Messaging/Messaging_RT_PolicyC.h" #include "tao/Messaging/Messaging_No_ImplC.h" diff --git a/TAO/tao/Messaging/MessagingS.cpp b/TAO/tao/Messaging/MessagingS.cpp index 0616b415535..26e5e5b1124 100644 --- a/TAO/tao/Messaging/MessagingS.cpp +++ b/TAO/tao/Messaging/MessagingS.cpp @@ -96,7 +96,7 @@ public: }; /* C++ code produced by gperf version 2.8 (ACE version) */ -/* Command-line: c:\ACE\HEAD\ACE_wrappers\bin\gperf.exe -m -M -J -c -C -D -E -T -f 0 -F 0,0 -a -o -t -p -K opname -L C++ -Z TAO_Messaging_ReplyHandler_Perfect_Hash_OpTable -N lookup */ +/* Command-line: c:\ACE\latest\ACE_wrappers\bin\gperf.exe -m -M -J -c -C -D -E -T -f 0 -F 0,0 -a -o -t -p -K opname -L C++ -Z TAO_Messaging_ReplyHandler_Perfect_Hash_OpTable -N lookup */ unsigned int TAO_Messaging_ReplyHandler_Perfect_Hash_OpTable::hash (const char *str, unsigned int len) { diff --git a/TAO/tao/Messaging/MessagingS.h b/TAO/tao/Messaging/MessagingS.h index 214ed9a5f9b..4f246e838d7 100644 --- a/TAO/tao/Messaging/MessagingS.h +++ b/TAO/tao/Messaging/MessagingS.h @@ -34,7 +34,6 @@ #include /**/ "ace/pre.h" #include "Messaging.h" -#include "tao/PollableS.h" #include "tao/OctetSeqS.h" #if !defined (ACE_LACKS_PRAGMA_ONCE) @@ -59,100 +58,100 @@ namespace POA_Messaging { - - + + // TAO_IDL - Generated from // be\be_visitor_interface/interface_sh.cpp:87 - + class ReplyHandler; typedef ReplyHandler *ReplyHandler_ptr; - + class _TAO_ReplyHandler_Direct_Proxy_Impl; class _TAO_ReplyHandler_Strategized_Proxy_Broker; - + class TAO_Messaging_Export ReplyHandler : public virtual PortableServer::ServantBase { protected: ReplyHandler (void); - + public: // Useful for template programming. typedef ::Messaging::ReplyHandler _stub_type; typedef ::Messaging::ReplyHandler_ptr _stub_ptr_type; typedef ::Messaging::ReplyHandler_var _stub_var_type; - + ReplyHandler (const ReplyHandler& rhs); virtual ~ReplyHandler (void); - + virtual CORBA::Boolean _is_a ( const char* logical_type_id ACE_ENV_ARG_DECL_WITH_DEFAULTS ); - + static void _is_a_skel ( TAO_ServerRequest & req, void * servant_upcall, void * servant ACE_ENV_ARG_DECL ); - + static void _non_existent_skel ( TAO_ServerRequest & req, void * servant_upcall, void * servant ACE_ENV_ARG_DECL ); - + static void _interface_skel ( TAO_ServerRequest & req, void * servant_upcall, void * servant ACE_ENV_ARG_DECL ); - + static void _component_skel ( TAO_ServerRequest & req, void * servant_upcall, void * servant ACE_ENV_ARG_DECL ); - + virtual void _dispatch ( TAO_ServerRequest & req, void * servant_upcall ACE_ENV_ARG_DECL ); - + ::Messaging::ReplyHandler *_this ( ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS ); - + virtual const char* _interface_repository_id (void) const; }; - + /////////////////////////////////////////////////////////////////////// - // Strategized Proxy Broker Declaration + // Strategized Proxy Broker Declaration // - + // TAO_IDL - Generated from // be\be_visitor_interface/strategized_proxy_broker_sh.cpp:36 - + class TAO_Messaging_Export _TAO_ReplyHandler_Strategized_Proxy_Broker : public virtual TAO::Collocation_Proxy_Broker { - public: + public: _TAO_ReplyHandler_Strategized_Proxy_Broker (void); - + virtual ~_TAO_ReplyHandler_Strategized_Proxy_Broker (void); - + TAO::Collocation_Strategy get_strategy ( CORBA::Object_ptr obj ACE_ENV_ARG_DECL ) ACE_THROW_SPEC ((CORBA::SystemException)); - + void dispatch ( CORBA::Object_ptr obj, @@ -165,44 +164,44 @@ namespace POA_Messaging ACE_ENV_ARG_DECL ) ACE_THROW_SPEC ((CORBA::Exception)); - + static _TAO_ReplyHandler_Strategized_Proxy_Broker * the_TAO_ReplyHandler_Strategized_Proxy_Broker (void); }; - + // - // End Strategized Proxy Broker Declaration + // End Strategized Proxy Broker Declaration /////////////////////////////////////////////////////////////////////// - - - - // TAO_IDL - Generated from + + + + // TAO_IDL - Generated from // be\be_visitor_interface/direct_proxy_impl_sh.cpp:31 - + /////////////////////////////////////////////////////////////////////// // Direct Impl. Declaration // - + class TAO_Messaging_Export _TAO_ReplyHandler_Direct_Proxy_Impl { public: _TAO_ReplyHandler_Direct_Proxy_Impl (void); - + virtual ~_TAO_ReplyHandler_Direct_Proxy_Impl (void); }; - + // // Direct Proxy Impl. Declaration /////////////////////////////////////////////////////////////////////// - - + + // TAO_IDL - Generated from // be\be_visitor_module/module_sh.cpp:80 } // module Messaging -// TAO_IDL - Generated from +// TAO_IDL - Generated from // be\be_codegen.cpp:995 #include "MessagingS_T.h" diff --git a/TAO/tao/Messaging/Messaging_No_Impl.pidl b/TAO/tao/Messaging/Messaging_No_Impl.pidl index 5e3a4f001f5..8931c516a21 100644 --- a/TAO/tao/Messaging/Messaging_No_Impl.pidl +++ b/TAO/tao/Messaging/Messaging_No_Impl.pidl @@ -40,8 +40,6 @@ #include "tao/TimeBase.pidl" #include "tao/Policy.pidl" -#include "tao/Pollable.pidl" - #pragma prefix "omg.org" diff --git a/TAO/tao/Messaging/Messaging_No_ImplC.h b/TAO/tao/Messaging/Messaging_No_ImplC.h index 6fb80b2bff0..0c4dbcbaf25 100644 --- a/TAO/tao/Messaging/Messaging_No_ImplC.h +++ b/TAO/tao/Messaging/Messaging_No_ImplC.h @@ -50,7 +50,6 @@ #include "tao/TimeBaseC.h" #include "tao/PolicyC.h" -#include "tao/PollableC.h" #if defined(TRANSPARENT) // Some platforms define this macro for ioctl() diff --git a/TAO/tao/ORB_Core.h b/TAO/tao/ORB_Core.h index 9eac2017285..dc0e27f4203 100644 --- a/TAO/tao/ORB_Core.h +++ b/TAO/tao/ORB_Core.h @@ -74,7 +74,6 @@ class TAO_Profile; class TAO_Endpoint_Selector_Factory; class TAO_Message_State_Factory; -class TAO_ServerRequest; class TAO_Protocols_Hooks; class TAO_BiDir_Adapter; diff --git a/TAO/tao/ClientRequestInfo.cpp b/TAO/tao/PI/ClientRequestInfo.cpp index aa8ab36a099..d5c7271f555 100644 --- a/TAO/tao/ClientRequestInfo.cpp +++ b/TAO/tao/PI/ClientRequestInfo.cpp @@ -9,21 +9,19 @@ ACE_RCSID (tao, ClientRequestInfo, "$Id$") -#include "Any.h" -#include "PolicyC.h" -#include "PortableInterceptorC.h" -#include "PICurrent.h" -#include "Invocation_Base.h" -#include "Stub.h" -#include "ORB_Core.h" -#include "Profile.h" -#include "debug.h" -#include "Service_Context.h" +#include "tao/Any.h" +#include "tao/PolicyC.h" +#include "tao/PortableInterceptorC.h" +#include "tao/PICurrent.h" +#include "tao/Invocation_Base.h" +#include "tao/Stub.h" +#include "tao/ORB_Core.h" +#include "tao/Profile.h" +#include "tao/debug.h" +#include "tao/Service_Context.h" TAO_ClientRequestInfo::TAO_ClientRequestInfo (TAO::Invocation_Base *inv) : invocation_ (inv), - caught_exception_ (0), - reply_status_ (-1), rs_pi_current_ (), copy_callback_ () { @@ -153,8 +151,8 @@ TAO_ClientRequestInfo::received_exception (ACE_ENV_SINGLE_ARG_DECL) this->check_validity (ACE_ENV_SINGLE_ARG_PARAMETER); ACE_CHECK_RETURN (0); - if (this->reply_status_ != PortableInterceptor::SYSTEM_EXCEPTION - && this->reply_status_ != PortableInterceptor::USER_EXCEPTION) + if (this->invocation_->reply_status () != PortableInterceptor::SYSTEM_EXCEPTION + && this->invocation_->reply_status () != PortableInterceptor::USER_EXCEPTION) { ACE_THROW_RETURN (CORBA::BAD_INV_ORDER (CORBA::OMGVMCID | 14, CORBA::COMPLETED_NO), 0); @@ -175,12 +173,15 @@ TAO_ClientRequestInfo::received_exception (ACE_ENV_SINGLE_ARG_DECL) CORBA::COMPLETED_NO)); ACE_CHECK_RETURN (0); - CORBA::Any_var caught_exception = temp; + CORBA::Any_var caught_exception_var = temp; - if (this->caught_exception_ != 0) - *temp <<= *(this->caught_exception_); + CORBA::Exception *caught_exception = + invocation_->caught_exception (); - return caught_exception._retn (); + if (caught_exception != 0) + *temp <<= *(caught_exception); + + return caught_exception_var._retn (); } char * @@ -191,15 +192,17 @@ TAO_ClientRequestInfo::received_exception_id ( this->check_validity (ACE_ENV_SINGLE_ARG_PARAMETER); ACE_CHECK_RETURN (0); - if (this->reply_status_ != PortableInterceptor::SYSTEM_EXCEPTION - && this->reply_status_ != PortableInterceptor::USER_EXCEPTION) + CORBA::Exception *caught_exception = + invocation_->caught_exception (); + + if (caught_exception == 0) { ACE_THROW_RETURN (CORBA::BAD_INV_ORDER (CORBA::OMGVMCID | 14, CORBA::COMPLETED_NO), 0); } - return CORBA::string_dup (this->caught_exception_->_rep_id ()); + return CORBA::string_dup (caught_exception->_rep_id ()); } IOP::TaggedComponent * @@ -537,7 +540,7 @@ TAO_ClientRequestInfo::reply_status (ACE_ENV_SINGLE_ARG_DECL) this->check_validity (ACE_ENV_SINGLE_ARG_PARAMETER); ACE_CHECK_RETURN (PortableInterceptor::SYSTEM_EXCEPTION); - if (this->reply_status_ == -1) + if (this->invocation_->reply_status() == -1) { // A reply hasn't been received yet. ACE_THROW_RETURN (CORBA::BAD_INV_ORDER (CORBA::OMGVMCID | 14, @@ -545,7 +548,7 @@ TAO_ClientRequestInfo::reply_status (ACE_ENV_SINGLE_ARG_DECL) -1); } - return this->reply_status_; + return this->invocation_->reply_status(); } CORBA::Object_ptr @@ -555,7 +558,7 @@ TAO_ClientRequestInfo::forward_reference (ACE_ENV_SINGLE_ARG_DECL) this->check_validity (ACE_ENV_SINGLE_ARG_PARAMETER); ACE_CHECK_RETURN (CORBA::Object::_nil ()); - if (this->reply_status_ != PortableInterceptor::LOCATION_FORWARD) + if (this->invocation_->reply_status() != PortableInterceptor::LOCATION_FORWARD) { ACE_THROW_RETURN (CORBA::BAD_INV_ORDER (CORBA::OMGVMCID | 14, CORBA::COMPLETED_NO), @@ -618,59 +621,6 @@ TAO_ClientRequestInfo::get_reply_service_context ( } void -TAO_ClientRequestInfo::reply_status (TAO::Invocation_Status invoke_status) -{ - switch (invoke_status) - { - case TAO::TAO_INVOKE_SUCCESS: - this->reply_status_ = PortableInterceptor::SUCCESSFUL; - break; - case TAO::TAO_INVOKE_RESTART: - if (this->invocation_->is_forwarded ()) - this->reply_status_ = PortableInterceptor::LOCATION_FORWARD; - else - this->reply_status_ = PortableInterceptor::TRANSPORT_RETRY; - break; - case TAO::TAO_INVOKE_USER_EXCEPTION: - this->reply_status_ = PortableInterceptor::USER_EXCEPTION; - break; - case TAO::TAO_INVOKE_SYSTEM_EXCEPTION: - this->reply_status_ = PortableInterceptor::SYSTEM_EXCEPTION; - break; - default: - this->reply_status_ = PortableInterceptor::UNKNOWN; - break; - } -} - -void -TAO_ClientRequestInfo::exception (CORBA::Exception *exception) -{ - if (CORBA::SystemException::_downcast (exception) != 0) - this->reply_status_ = PortableInterceptor::SYSTEM_EXCEPTION; - else if (CORBA::UserException::_downcast (exception) != 0) - this->reply_status_ = PortableInterceptor::USER_EXCEPTION; - - // @@ Is it possible for both of the above downcasts to fail? - - this->caught_exception_ = exception; -} - -void -TAO_ClientRequestInfo::forward_reference ( - PortableInterceptor::ForwardRequest &) -{ - // Note that we're converting the ForwardRequest exception in to a - // LOCATION_FORWARD reply, so we do not set the exception status. - // - // The forward object reference is not handled here. Rather, it is - // handled by the TAO::Invocation_Base object so that its profiles - // can be added to the list of forward profiles. - - this->reply_status_ = PortableInterceptor::LOCATION_FORWARD; -} - -void TAO_ClientRequestInfo::check_validity (ACE_ENV_SINGLE_ARG_DECL) { if (this->invocation_ == 0) diff --git a/TAO/tao/ClientRequestInfo.h b/TAO/tao/PI/ClientRequestInfo.h index ec76c05c467..43fc1d095c3 100644 --- a/TAO/tao/ClientRequestInfo.h +++ b/TAO/tao/PI/ClientRequestInfo.h @@ -31,12 +31,12 @@ #pragma warning(disable:4250) #endif /* _MSC_VER */ -#include "tao/ClientRequestInfoC.h" -#include "tao/ORB_Constants.h" -#include "Invocation_Utils.h" +#include "ClientRequestInfoC.h" #include "PIForwardRequestC.h" -#include "PICurrent_Impl.h" -#include "PICurrent_Copy_Callback.h" +#include "tao/ORB_Constants.h" +#include "tao/Invocation_Utils.h" +#include "tao/PICurrent_Impl.h" +#include "tao/PICurrent_Copy_Callback.h" class TAO_Service_Context; @@ -218,28 +218,6 @@ public: ACE_ENV_ARG_DECL_WITH_DEFAULTS) ACE_THROW_SPEC ((CORBA::SystemException)); - /** - * @name Stub helper methods - * - * The following methods are used in the implementation of the - * Stubs, they are not part of the ClientRequestInfo interface, but - * an extension used internally by TAO. - */ - //@{ - - /// Change the exception status. - void exception (CORBA::Exception *exception); - - /// Set the status of the received reply. - void reply_status (TAO::Invocation_Status invoke_status); - - /// Extract the forward object reference from the - /// PortableInterceptor::ForwardRequest exception, and set the reply - /// status flag accordingly. - void forward_reference (PortableInterceptor::ForwardRequest &exc); - //@} - - private: /// Check if this ClientRequestInfo object is called within the @@ -261,12 +239,6 @@ private: /// Pointer to the invocation object. TAO::Invocation_Base *invocation_; - /// Pointer to the caught exception. - CORBA::Exception *caught_exception_; - - /// Reply status for the current request. - PortableInterceptor::ReplyStatus reply_status_; - /// The "Request Scope Current" (RSC) object, as required by /// Portable Interceptors. TAO::PICurrent_Impl rs_pi_current_; diff --git a/TAO/tao/ClientRequestInfo.pidl b/TAO/tao/PI/ClientRequestInfo.pidl index fb1284ce1b4..3ee07e65af4 100644 --- a/TAO/tao/ClientRequestInfo.pidl +++ b/TAO/tao/PI/ClientRequestInfo.pidl @@ -22,7 +22,7 @@ #ifndef _CLIENT_REQUESTINFO_PIDL_ #define _CLIENT_REQUESTINFO_PIDL_ -#include <RequestInfo.pidl> +#include "tao/PI/RequestInfo.pidl" #include <orb_types.pidl> #include <Policy_Forward.pidl> diff --git a/TAO/tao/ClientRequestInfoA.cpp b/TAO/tao/PI/ClientRequestInfoA.cpp index 75245ee97ed..75245ee97ed 100644 --- a/TAO/tao/ClientRequestInfoA.cpp +++ b/TAO/tao/PI/ClientRequestInfoA.cpp diff --git a/TAO/tao/ClientRequestInfoC.cpp b/TAO/tao/PI/ClientRequestInfoC.cpp index b818e7383c8..b818e7383c8 100644 --- a/TAO/tao/ClientRequestInfoC.cpp +++ b/TAO/tao/PI/ClientRequestInfoC.cpp diff --git a/TAO/tao/ClientRequestInfoC.h b/TAO/tao/PI/ClientRequestInfoC.h index a5bfb614689..9a5becb6f4a 100644 --- a/TAO/tao/ClientRequestInfoC.h +++ b/TAO/tao/PI/ClientRequestInfoC.h @@ -40,7 +40,7 @@ # pragma once #endif /* ACE_LACKS_PRAGMA_ONCE */ -#include "tao/TAO_Export.h" +#include "tao/PI/pi_export.h" #include "tao/ORB.h" #include "tao/SystemException.h" #include "tao/Environment.h" @@ -50,14 +50,14 @@ #include "tao/TypeCode.h" #include "tao/Objref_VarOut_T.h" -#include "tao/RequestInfoC.h" +#include "tao/PI/RequestInfoC.h" #include "tao/orb_typesC.h" #include "tao/Policy_ForwardC.h" #if defined (TAO_EXPORT_MACRO) #undef TAO_EXPORT_MACRO #endif -#define TAO_EXPORT_MACRO TAO_Export +#define TAO_EXPORT_MACRO TAO_PI_Export #if defined(_MSC_VER) #pragma warning(push) @@ -103,7 +103,7 @@ namespace PortableInterceptor #if !defined (_PORTABLEINTERCEPTOR_CLIENTREQUESTINFO_CH_) #define _PORTABLEINTERCEPTOR_CLIENTREQUESTINFO_CH_ - class TAO_Export ClientRequestInfo + class TAO_PI_Export ClientRequestInfo : public virtual ::PortableInterceptor::RequestInfo { public: @@ -256,7 +256,7 @@ namespace PortableInterceptor // TAO_IDL - Generated from // be\be_visitor_typecode/typecode_decl.cpp:44 - extern TAO_Export ::CORBA::TypeCode_ptr const _tc_ClientRequestInfo; + extern TAO_PI_Export ::CORBA::TypeCode_ptr const _tc_ClientRequestInfo; // TAO_IDL - Generated from // be\be_visitor_module/module_ch.cpp:66 @@ -274,7 +274,7 @@ namespace TAO #define _PORTABLEINTERCEPTOR_CLIENTREQUESTINFO__TRAITS_CH_ template<> - struct TAO_Export Objref_Traits< ::PortableInterceptor::ClientRequestInfo> + struct TAO_PI_Export Objref_Traits< ::PortableInterceptor::ClientRequestInfo> { static ::PortableInterceptor::ClientRequestInfo_ptr duplicate ( ::PortableInterceptor::ClientRequestInfo_ptr @@ -295,9 +295,9 @@ namespace TAO // TAO_IDL - Generated from // be\be_visitor_interface/any_op_ch.cpp:52 -TAO_Export void operator<<= (CORBA::Any &, PortableInterceptor::ClientRequestInfo_ptr); // copying -TAO_Export void operator<<= (CORBA::Any &, PortableInterceptor::ClientRequestInfo_ptr *); // non-copying -TAO_Export CORBA::Boolean operator>>= (const CORBA::Any &, PortableInterceptor::ClientRequestInfo_ptr &); +TAO_PI_Export void operator<<= (CORBA::Any &, PortableInterceptor::ClientRequestInfo_ptr); // copying +TAO_PI_Export void operator<<= (CORBA::Any &, PortableInterceptor::ClientRequestInfo_ptr *); // non-copying +TAO_PI_Export CORBA::Boolean operator>>= (const CORBA::Any &, PortableInterceptor::ClientRequestInfo_ptr &); // TAO_IDL - Generated from // be\be_codegen.cpp:955 diff --git a/TAO/tao/ClientRequestInfoS.h b/TAO/tao/PI/ClientRequestInfoS.h index 17b1360599e..17b1360599e 100644 --- a/TAO/tao/ClientRequestInfoS.h +++ b/TAO/tao/PI/ClientRequestInfoS.h diff --git a/TAO/tao/PI/ClientRequestInterceptor.pidl b/TAO/tao/PI/ClientRequestInterceptor.pidl index 1492f44e2b4..11a07bab4a8 100644 --- a/TAO/tao/PI/ClientRequestInterceptor.pidl +++ b/TAO/tao/PI/ClientRequestInterceptor.pidl @@ -29,7 +29,7 @@ #define _CLIENT_REQUEST_INTERCEPTOR_IDL_ #include "tao/PI/Interceptor.pidl" -#include <PIForwardRequest.pidl> +#include "tao/PI/PIForwardRequest.pidl" module PortableInterceptor { diff --git a/TAO/tao/PI/ClientRequestInterceptorC.h b/TAO/tao/PI/ClientRequestInterceptorC.h index 7f56dcd9eb0..4c9bd3efb85 100644 --- a/TAO/tao/PI/ClientRequestInterceptorC.h +++ b/TAO/tao/PI/ClientRequestInterceptorC.h @@ -48,7 +48,7 @@ #include "tao/Objref_VarOut_T.h" #include "tao/PI/InterceptorC.h" -#include "tao/PIForwardRequestC.h" +#include "tao/PI/PIForwardRequestC.h" #if defined (TAO_EXPORT_MACRO) #undef TAO_EXPORT_MACRO @@ -69,22 +69,22 @@ namespace PortableInterceptor { - + // TAO_IDL - Generated from // be\be_interface.cpp:598 #if !defined (_PORTABLEINTERCEPTOR_CLIENTREQUESTINFO__VAR_OUT_CH_) #define _PORTABLEINTERCEPTOR_CLIENTREQUESTINFO__VAR_OUT_CH_ - + class ClientRequestInfo; typedef ClientRequestInfo *ClientRequestInfo_ptr; - + typedef TAO_Objref_Var_T< ClientRequestInfo > ClientRequestInfo_var; - + typedef TAO_Objref_Out_T< ClientRequestInfo @@ -92,22 +92,22 @@ namespace PortableInterceptor ClientRequestInfo_out; #endif /* end #if !defined */ - + // TAO_IDL - Generated from // be\be_interface.cpp:598 #if !defined (_PORTABLEINTERCEPTOR_CLIENTREQUESTINTERCEPTOR__VAR_OUT_CH_) #define _PORTABLEINTERCEPTOR_CLIENTREQUESTINTERCEPTOR__VAR_OUT_CH_ - + class ClientRequestInterceptor; typedef ClientRequestInterceptor *ClientRequestInterceptor_ptr; - + typedef TAO_Objref_Var_T< ClientRequestInterceptor > ClientRequestInterceptor_var; - + typedef TAO_Objref_Out_T< ClientRequestInterceptor @@ -115,45 +115,45 @@ namespace PortableInterceptor ClientRequestInterceptor_out; #endif /* end #if !defined */ - + // TAO_IDL - Generated from // be\be_visitor_interface/interface_ch.cpp:54 #if !defined (_PORTABLEINTERCEPTOR_CLIENTREQUESTINTERCEPTOR_CH_) #define _PORTABLEINTERCEPTOR_CLIENTREQUESTINTERCEPTOR_CH_ - + class TAO_PI_Export ClientRequestInterceptor : public virtual ::PortableInterceptor::Interceptor { public: typedef ClientRequestInterceptor_ptr _ptr_type; typedef ClientRequestInterceptor_var _var_type; - + // The static operations. static ClientRequestInterceptor_ptr _duplicate (ClientRequestInterceptor_ptr obj); - + static void _tao_release (ClientRequestInterceptor_ptr obj); - + static ClientRequestInterceptor_ptr _narrow ( CORBA::Object_ptr obj ACE_ENV_ARG_DECL_WITH_DEFAULTS ); - + static ClientRequestInterceptor_ptr _unchecked_narrow ( CORBA::Object_ptr obj ACE_ENV_ARG_DECL_WITH_DEFAULTS ); - + static ClientRequestInterceptor_ptr _nil (void) { return static_cast<ClientRequestInterceptor_ptr> (0); } - + static void _tao_any_destructor (void *); - + // TAO_IDL - Generated from // be\be_visitor_operation/operation_ch.cpp:46 - + virtual void send_request ( ::PortableInterceptor::ClientRequestInfo_ptr ri ACE_ENV_ARG_DECL_WITH_DEFAULTS @@ -162,10 +162,10 @@ namespace PortableInterceptor CORBA::SystemException, ::PortableInterceptor::ForwardRequest )) = 0; - + // TAO_IDL - Generated from // be\be_visitor_operation/operation_ch.cpp:46 - + virtual void send_poll ( ::PortableInterceptor::ClientRequestInfo_ptr ri ACE_ENV_ARG_DECL_WITH_DEFAULTS @@ -173,10 +173,10 @@ namespace PortableInterceptor ACE_THROW_SPEC (( CORBA::SystemException )) = 0; - + // TAO_IDL - Generated from // be\be_visitor_operation/operation_ch.cpp:46 - + virtual void receive_reply ( ::PortableInterceptor::ClientRequestInfo_ptr ri ACE_ENV_ARG_DECL_WITH_DEFAULTS @@ -184,10 +184,10 @@ namespace PortableInterceptor ACE_THROW_SPEC (( CORBA::SystemException )) = 0; - + // TAO_IDL - Generated from // be\be_visitor_operation/operation_ch.cpp:46 - + virtual void receive_exception ( ::PortableInterceptor::ClientRequestInfo_ptr ri ACE_ENV_ARG_DECL_WITH_DEFAULTS @@ -196,7 +196,7 @@ namespace PortableInterceptor CORBA::SystemException, ::PortableInterceptor::ForwardRequest )) = 0; - + // TAO_IDL - Generated from // be\be_visitor_operation/operation_ch.cpp:46 diff --git a/TAO/tao/PI/ClientRequestInterceptor_Adapter_Impl.cpp b/TAO/tao/PI/ClientRequestInterceptor_Adapter_Impl.cpp index 0f0b179be00..081f4aebb7d 100644 --- a/TAO/tao/PI/ClientRequestInterceptor_Adapter_Impl.cpp +++ b/TAO/tao/PI/ClientRequestInterceptor_Adapter_Impl.cpp @@ -6,7 +6,8 @@ #include "ClientRequestInterceptor_Adapter_Impl.inl" #endif /* defined INLINE */ -#include "tao/ClientRequestInfo.h" +#include "ClientRequestInfo.h" + #include "tao/Invocation_Base.h" #include "tao/ORB_Core.h" #include "tao/ORB_Core_TSS_Resources.h" @@ -20,18 +21,20 @@ namespace TAO { void ClientRequestInterceptor_Adapter_Impl::send_request ( - Invocation_Base &invocation, - TAO_ClientRequestInfo *ri + Invocation_Base &invocation ACE_ENV_ARG_DECL) { // This method implements one of the "starting" client side // interception point. ACE_TRY { + TAO_ClientRequestInfo ri (&invocation); + for (size_t i = 0 ; i < this->interceptor_list_.size (); ++i) { - this->interceptor_list_.interceptor (i)->send_request (ri - ACE_ENV_ARG_PARAMETER); + this->interceptor_list_.interceptor (i)-> + send_request (&ri + ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; // The starting interception point completed successfully. @@ -42,7 +45,6 @@ namespace TAO ACE_CATCH (PortableInterceptor::ForwardRequest, exc) { this->process_forward_request (invocation, - ri, exc ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; @@ -53,8 +55,7 @@ namespace TAO void ClientRequestInterceptor_Adapter_Impl::receive_reply ( - Invocation_Base &invocation, - TAO_ClientRequestInfo *ri + Invocation_Base &invocation ACE_ENV_ARG_DECL) { // This is an "ending" interception point so we only process the @@ -64,6 +65,8 @@ namespace TAO // they were pushed onto the stack since this is an "ending" // interception point. + TAO_ClientRequestInfo ri (&invocation); + // Unwind the stack. const size_t len = invocation.stack_size (); for (size_t i = 0; i < len; ++i) @@ -76,7 +79,7 @@ namespace TAO this->interceptor_list_.interceptor (invocation.stack_size ())-> receive_reply ( - ri + &ri ACE_ENV_ARG_PARAMETER); ACE_CHECK; } @@ -88,8 +91,7 @@ namespace TAO void ClientRequestInterceptor_Adapter_Impl::receive_exception ( - Invocation_Base &invocation, - TAO_ClientRequestInfo *ri + Invocation_Base &invocation ACE_ENV_ARG_DECL) { // This is an "ending" interception point so we only process the @@ -98,9 +100,10 @@ namespace TAO // Notice that the interceptors are processed in the opposite order // they were pushed onto the stack since this is an "ending" // interception point. - ACE_TRY { + TAO_ClientRequestInfo ri (&invocation); + // Unwind the flow stack. const size_t len = invocation.stack_size (); for (size_t i = 0; i < len; ++i) @@ -113,7 +116,7 @@ namespace TAO this->interceptor_list_.interceptor (invocation.stack_size ())-> receive_exception ( - ri + &ri ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; } @@ -121,7 +124,6 @@ namespace TAO ACE_CATCH (PortableInterceptor::ForwardRequest, exc) { this->process_forward_request (invocation, - ri, exc ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; @@ -138,14 +140,13 @@ namespace TAO // drops to zero, i.e., once each interceptor has been invoked. // This prevents infinite recursion from occuring. - ri->exception (&ACE_ANY_EXCEPTION); + invocation.exception (&ACE_ANY_EXCEPTION); - this->receive_exception (invocation, ri ACE_ENV_ARG_PARAMETER); + this->receive_exception (invocation ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; PortableInterceptor::ReplyStatus status = - ri->reply_status (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; + this->reply_status (invocation); // Only re-throw the exception if it hasn't been transformed by // the receive_exception() interception point (e.g. to a @@ -160,8 +161,7 @@ namespace TAO void ClientRequestInterceptor_Adapter_Impl::receive_other ( - Invocation_Base &invocation, - TAO_ClientRequestInfo *ri + Invocation_Base &invocation ACE_ENV_ARG_DECL) { // This is an "ending" interception point so we only process the @@ -173,6 +173,8 @@ namespace TAO ACE_TRY { + TAO_ClientRequestInfo ri (&invocation); + // Unwind the stack. const size_t len = invocation.stack_size (); for (size_t i = 0; i < len; ++i) @@ -185,7 +187,7 @@ namespace TAO this->interceptor_list_.interceptor (invocation.stack_size ())-> receive_other ( - ri + &ri ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; } @@ -193,7 +195,6 @@ namespace TAO ACE_CATCH (PortableInterceptor::ForwardRequest, exc) { this->process_forward_request (invocation, - ri, exc ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; @@ -205,17 +206,13 @@ namespace TAO void ClientRequestInterceptor_Adapter_Impl::process_forward_request ( Invocation_Base &invocation, - TAO_ClientRequestInfo *ri, PortableInterceptor::ForwardRequest &exc ACE_ENV_ARG_DECL) { - ri->forward_reference (exc); - invocation.forwarded_reference (exc.forward.in ()); // receive_other() is potentially invoked recursively. - this->receive_other (invocation, - ri + this->receive_other (invocation ACE_ENV_ARG_PARAMETER); ACE_CHECK; } @@ -234,6 +231,37 @@ namespace TAO { this->interceptor_list_.destroy_interceptors (ACE_ENV_SINGLE_ARG_PARAMETER); } + + PortableInterceptor::ReplyStatus + ClientRequestInterceptor_Adapter_Impl::reply_status ( + TAO::Invocation_Base const &invocation_base) + { + PortableInterceptor::ReplyStatus reply_status; + + switch (invocation_base.invoke_status ()) + { + case TAO::TAO_INVOKE_SUCCESS: + reply_status = PortableInterceptor::SUCCESSFUL; + break; + case TAO::TAO_INVOKE_RESTART: + if (invocation_base.is_forwarded ()) + reply_status = PortableInterceptor::LOCATION_FORWARD; + else + reply_status = PortableInterceptor::TRANSPORT_RETRY; + break; + case TAO::TAO_INVOKE_USER_EXCEPTION: + reply_status = PortableInterceptor::USER_EXCEPTION; + break; + case TAO::TAO_INVOKE_SYSTEM_EXCEPTION: + reply_status = PortableInterceptor::SYSTEM_EXCEPTION; + break; + default: + reply_status = PortableInterceptor::UNKNOWN; + break; + } + + return reply_status; + } } #endif /* TAO_HAS_INTERCEPTORS == 1 */ diff --git a/TAO/tao/PI/ClientRequestInterceptor_Adapter_Impl.h b/TAO/tao/PI/ClientRequestInterceptor_Adapter_Impl.h index 253ca0f3e06..3139b720ceb 100644 --- a/TAO/tao/PI/ClientRequestInterceptor_Adapter_Impl.h +++ b/TAO/tao/PI/ClientRequestInterceptor_Adapter_Impl.h @@ -76,26 +76,22 @@ namespace TAO //@{ /// This method implements one of the "starting" client side /// interception points. - virtual void send_request (Invocation_Base &invocation, - TAO_ClientRequestInfo *ri + virtual void send_request (Invocation_Base &invocation ACE_ENV_ARG_DECL); /// This method implements one of the "ending" client side /// interception point. - virtual void receive_reply (Invocation_Base &invocation, - TAO_ClientRequestInfo *ri + virtual void receive_reply (Invocation_Base &invocation ACE_ENV_ARG_DECL); /// This method implements one of the "ending" client side /// interception point. - virtual void receive_exception (Invocation_Base &invocation, - TAO_ClientRequestInfo *ri + virtual void receive_exception (Invocation_Base &invocation ACE_ENV_ARG_DECL); /// This method implements one of the "ending" client side /// interception point. - virtual void receive_other (Invocation_Base &invocation, - TAO_ClientRequestInfo *ri + virtual void receive_other (Invocation_Base &invocation ACE_ENV_ARG_DECL); //@} @@ -106,13 +102,15 @@ namespace TAO virtual void destroy_interceptors (ACE_ENV_SINGLE_ARG_DECL); + virtual PortableInterceptor::ReplyStatus reply_status ( + TAO::Invocation_Base const &invocation_base); + protected: /// Process the given PortableInterceptor::ForwardRequest exception, /// i.e. invoke the receive_other() interception point, in addition /// to notifying the Invocation object of the LOCATION_FORWARD. void process_forward_request (Invocation_Base &invocation, - TAO_ClientRequestInfo *ri, PortableInterceptor::ForwardRequest &exc ACE_ENV_ARG_DECL); diff --git a/TAO/tao/PI/ORBInitInfoA.cpp b/TAO/tao/PI/ORBInitInfoA.cpp index b34d847976d..4a097c2a612 100644 --- a/TAO/tao/PI/ORBInitInfoA.cpp +++ b/TAO/tao/PI/ORBInitInfoA.cpp @@ -39,7 +39,7 @@ #include "tao/Any_Dual_Impl_T.h" // TAO_IDL - Generated from -// be\be_visitor_typecode/alias_typecode.cpp:31 +// be\be_visitor_typecode/alias_typecode.cpp:50 static TAO::TypeCode::Alias<char const *, CORBA::TypeCode_ptr const *, diff --git a/TAO/tao/PI/ORBInitInfoC.cpp b/TAO/tao/PI/ORBInitInfoC.cpp index aba249452c2..33580f1f439 100644 --- a/TAO/tao/PI/ORBInitInfoC.cpp +++ b/TAO/tao/PI/ORBInitInfoC.cpp @@ -38,7 +38,7 @@ #endif /* __BORLANDC__ */ // TAO_IDL - Generated from -// be\be_visitor_arg_traits.cpp:69 +// be\be_visitor_arg_traits.cpp:70 // Arg traits specializations. namespace TAO @@ -310,15 +310,9 @@ PortableInterceptor::ORBInitInfo::_narrow ( ACE_ENV_ARG_DECL_NOT_USED ) { - if (CORBA::is_nil (_tao_objref)) - { - return ORBInitInfo::_nil (); - } - - ORBInitInfo_ptr proxy = - dynamic_cast<ORBInitInfo_ptr> (_tao_objref); - - return ORBInitInfo::_duplicate (proxy); + return ORBInitInfo::_duplicate ( + dynamic_cast<ORBInitInfo_ptr> (_tao_objref) + ); } PortableInterceptor::ORBInitInfo_ptr @@ -327,15 +321,9 @@ PortableInterceptor::ORBInitInfo::_unchecked_narrow ( ACE_ENV_ARG_DECL_NOT_USED ) { - if (CORBA::is_nil (_tao_objref)) - { - return ORBInitInfo::_nil (); - } - - ORBInitInfo_ptr proxy = - dynamic_cast<ORBInitInfo_ptr> (_tao_objref); - - return ORBInitInfo::_duplicate (proxy); + return ORBInitInfo::_duplicate ( + dynamic_cast<ORBInitInfo_ptr> (_tao_objref) + ); } PortableInterceptor::ORBInitInfo_ptr diff --git a/TAO/tao/PI/ORBInitializerC.cpp b/TAO/tao/PI/ORBInitializerC.cpp index 3772a55380b..5703c44af1b 100644 --- a/TAO/tao/PI/ORBInitializerC.cpp +++ b/TAO/tao/PI/ORBInitializerC.cpp @@ -38,7 +38,7 @@ #endif /* __BORLANDC__ */ // TAO_IDL - Generated from -// be\be_visitor_arg_traits.cpp:69 +// be\be_visitor_arg_traits.cpp:70 // Arg traits specializations. namespace TAO @@ -102,15 +102,9 @@ PortableInterceptor::ORBInitializer::_narrow ( ACE_ENV_ARG_DECL_NOT_USED ) { - if (CORBA::is_nil (_tao_objref)) - { - return ORBInitializer::_nil (); - } - - ORBInitializer_ptr proxy = - dynamic_cast<ORBInitializer_ptr> (_tao_objref); - - return ORBInitializer::_duplicate (proxy); + return ORBInitializer::_duplicate ( + dynamic_cast<ORBInitializer_ptr> (_tao_objref) + ); } PortableInterceptor::ORBInitializer_ptr @@ -119,15 +113,9 @@ PortableInterceptor::ORBInitializer::_unchecked_narrow ( ACE_ENV_ARG_DECL_NOT_USED ) { - if (CORBA::is_nil (_tao_objref)) - { - return ORBInitializer::_nil (); - } - - ORBInitializer_ptr proxy = - dynamic_cast<ORBInitializer_ptr> (_tao_objref); - - return ORBInitializer::_duplicate (proxy); + return ORBInitializer::_duplicate ( + dynamic_cast<ORBInitializer_ptr> (_tao_objref) + ); } PortableInterceptor::ORBInitializer_ptr diff --git a/TAO/tao/PI/PI.h b/TAO/tao/PI/PI.h index eec9d3c2a91..ab654f7a923 100644 --- a/TAO/tao/PI/PI.h +++ b/TAO/tao/PI/PI.h @@ -44,6 +44,7 @@ TAO_Requires_PI_Initializer = #include "PolicyFactoryC.h" #include "ORBInitInfoC.h" #include "InterceptorC.h" +#include "ClientRequestInfoC.h" #include "ClientRequestInterceptorC.h" #undef TAO_PI_SAFE_INCLUDE diff --git a/TAO/tao/PIForwardRequest.pidl b/TAO/tao/PI/PIForwardRequest.pidl index 8b2d6fd1ec9..8b2d6fd1ec9 100644 --- a/TAO/tao/PIForwardRequest.pidl +++ b/TAO/tao/PI/PIForwardRequest.pidl diff --git a/TAO/tao/PIForwardRequestA.cpp b/TAO/tao/PI/PIForwardRequestA.cpp index bd8c5684d25..bd8c5684d25 100644 --- a/TAO/tao/PIForwardRequestA.cpp +++ b/TAO/tao/PI/PIForwardRequestA.cpp diff --git a/TAO/tao/PIForwardRequestC.cpp b/TAO/tao/PI/PIForwardRequestC.cpp index 7ecc261b227..7ecc261b227 100644 --- a/TAO/tao/PIForwardRequestC.cpp +++ b/TAO/tao/PI/PIForwardRequestC.cpp diff --git a/TAO/tao/PIForwardRequestC.h b/TAO/tao/PI/PIForwardRequestC.h index 50294ace702..f26359f8365 100644 --- a/TAO/tao/PIForwardRequestC.h +++ b/TAO/tao/PI/PIForwardRequestC.h @@ -40,7 +40,7 @@ # pragma once #endif /* ACE_LACKS_PRAGMA_ONCE */ -#include "tao/TAO_Export.h" +#include "tao/PI/pi_export.h" #include "tao/ORB.h" #include "tao/Environment.h" #include "tao/Object.h" @@ -48,7 +48,7 @@ #if defined (TAO_EXPORT_MACRO) #undef TAO_EXPORT_MACRO #endif -#define TAO_EXPORT_MACRO TAO_Export +#define TAO_EXPORT_MACRO TAO_PI_Export #if defined(_MSC_VER) #pragma warning(push) @@ -71,7 +71,7 @@ namespace PortableInterceptor #if !defined (_PORTABLEINTERCEPTOR_FORWARDREQUEST_CH_) #define _PORTABLEINTERCEPTOR_FORWARDREQUEST_CH_ - class TAO_Export ForwardRequest : public CORBA::UserException + class TAO_PI_Export ForwardRequest : public CORBA::UserException { public: @@ -119,7 +119,7 @@ namespace PortableInterceptor // TAO_IDL - Generated from // be\be_visitor_typecode/typecode_decl.cpp:44 - extern TAO_Export ::CORBA::TypeCode_ptr const _tc_ForwardRequest; + extern TAO_PI_Export ::CORBA::TypeCode_ptr const _tc_ForwardRequest; #endif /* end #if !defined */ @@ -139,16 +139,16 @@ namespace TAO // TAO_IDL - Generated from // be\be_visitor_exception/any_op_ch.cpp:52 -TAO_Export void operator<<= (CORBA::Any &, const PortableInterceptor::ForwardRequest &); // copying version -TAO_Export void operator<<= (CORBA::Any &, PortableInterceptor::ForwardRequest*); // noncopying version -TAO_Export CORBA::Boolean operator>>= (const CORBA::Any &, PortableInterceptor::ForwardRequest *&); // deprecated -TAO_Export CORBA::Boolean operator>>= (const CORBA::Any &, const PortableInterceptor::ForwardRequest *&); +TAO_PI_Export void operator<<= (CORBA::Any &, const PortableInterceptor::ForwardRequest &); // copying version +TAO_PI_Export void operator<<= (CORBA::Any &, PortableInterceptor::ForwardRequest*); // noncopying version +TAO_PI_Export CORBA::Boolean operator>>= (const CORBA::Any &, PortableInterceptor::ForwardRequest *&); // deprecated +TAO_PI_Export CORBA::Boolean operator>>= (const CORBA::Any &, const PortableInterceptor::ForwardRequest *&); // TAO_IDL - Generated from // be\be_visitor_exception/cdr_op_ch.cpp:52 -TAO_Export CORBA::Boolean operator<< (TAO_OutputCDR &, const PortableInterceptor::ForwardRequest &); -TAO_Export CORBA::Boolean operator>> (TAO_InputCDR &, PortableInterceptor::ForwardRequest &); +TAO_PI_Export CORBA::Boolean operator<< (TAO_OutputCDR &, const PortableInterceptor::ForwardRequest &); +TAO_PI_Export CORBA::Boolean operator>> (TAO_InputCDR &, PortableInterceptor::ForwardRequest &); // TAO_IDL - Generated from // be\be_codegen.cpp:955 diff --git a/TAO/tao/PIForwardRequestS.h b/TAO/tao/PI/PIForwardRequestS.h index 17b1360599e..17b1360599e 100644 --- a/TAO/tao/PIForwardRequestS.h +++ b/TAO/tao/PI/PIForwardRequestS.h diff --git a/TAO/tao/RequestInfo.pidl b/TAO/tao/PI/RequestInfo.pidl index 5714a704de4..5714a704de4 100644 --- a/TAO/tao/RequestInfo.pidl +++ b/TAO/tao/PI/RequestInfo.pidl diff --git a/TAO/tao/RequestInfoA.cpp b/TAO/tao/PI/RequestInfoA.cpp index b01b21aca7f..b01b21aca7f 100644 --- a/TAO/tao/RequestInfoA.cpp +++ b/TAO/tao/PI/RequestInfoA.cpp diff --git a/TAO/tao/RequestInfoC.cpp b/TAO/tao/PI/RequestInfoC.cpp index c6d7e2d7cbd..c6d7e2d7cbd 100644 --- a/TAO/tao/RequestInfoC.cpp +++ b/TAO/tao/PI/RequestInfoC.cpp diff --git a/TAO/tao/RequestInfoC.h b/TAO/tao/PI/RequestInfoC.h index cce63fc73a8..90fde2c2eb6 100644 --- a/TAO/tao/RequestInfoC.h +++ b/TAO/tao/PI/RequestInfoC.h @@ -40,7 +40,7 @@ # pragma once #endif /* ACE_LACKS_PRAGMA_ONCE */ -#include "tao/TAO_Export.h" +#include "tao/PI/pi_export.h" #include "tao/ORB.h" #include "tao/SystemException.h" #include "tao/Environment.h" @@ -59,7 +59,7 @@ #if defined (TAO_EXPORT_MACRO) #undef TAO_EXPORT_MACRO #endif -#define TAO_EXPORT_MACRO TAO_Export +#define TAO_EXPORT_MACRO TAO_PI_Export #if defined(_MSC_VER) #pragma warning(push) @@ -105,7 +105,7 @@ namespace PortableInterceptor #if !defined (_PORTABLEINTERCEPTOR_REQUESTINFO_CH_) #define _PORTABLEINTERCEPTOR_REQUESTINFO_CH_ - class TAO_Export RequestInfo + class TAO_PI_Export RequestInfo : public virtual CORBA::Object { public: @@ -307,7 +307,7 @@ namespace PortableInterceptor // TAO_IDL - Generated from // be\be_visitor_typecode/typecode_decl.cpp:44 - extern TAO_Export ::CORBA::TypeCode_ptr const _tc_RequestInfo; + extern TAO_PI_Export ::CORBA::TypeCode_ptr const _tc_RequestInfo; // TAO_IDL - Generated from // be\be_visitor_module/module_ch.cpp:66 @@ -325,7 +325,7 @@ namespace TAO #define _PORTABLEINTERCEPTOR_REQUESTINFO__TRAITS_CH_ template<> - struct TAO_Export Objref_Traits< ::PortableInterceptor::RequestInfo> + struct TAO_PI_Export Objref_Traits< ::PortableInterceptor::RequestInfo> { static ::PortableInterceptor::RequestInfo_ptr duplicate ( ::PortableInterceptor::RequestInfo_ptr @@ -346,9 +346,9 @@ namespace TAO // TAO_IDL - Generated from // be\be_visitor_interface/any_op_ch.cpp:52 -TAO_Export void operator<<= (CORBA::Any &, PortableInterceptor::RequestInfo_ptr); // copying -TAO_Export void operator<<= (CORBA::Any &, PortableInterceptor::RequestInfo_ptr *); // non-copying -TAO_Export CORBA::Boolean operator>>= (const CORBA::Any &, PortableInterceptor::RequestInfo_ptr &); +TAO_PI_Export void operator<<= (CORBA::Any &, PortableInterceptor::RequestInfo_ptr); // copying +TAO_PI_Export void operator<<= (CORBA::Any &, PortableInterceptor::RequestInfo_ptr *); // non-copying +TAO_PI_Export CORBA::Boolean operator>>= (const CORBA::Any &, PortableInterceptor::RequestInfo_ptr &); // TAO_IDL - Generated from // be\be_codegen.cpp:955 diff --git a/TAO/tao/RequestInfoS.h b/TAO/tao/PI/RequestInfoS.h index 17b1360599e..17b1360599e 100644 --- a/TAO/tao/RequestInfoS.h +++ b/TAO/tao/PI/RequestInfoS.h diff --git a/TAO/tao/PI_Server/PI_Server.h b/TAO/tao/PI_Server/PI_Server.h index e5b1afec288..8691353953e 100644 --- a/TAO/tao/PI_Server/PI_Server.h +++ b/TAO/tao/PI_Server/PI_Server.h @@ -40,6 +40,7 @@ TAO_Requires_PI_Server_Initializer = #define TAO_PI_SERVER_SAFE_INCLUDE #include "PS_CurrentC.h" #include "ServerRequestInterceptorC.h" +#include "ServerRequestInfoC.h" #undef TAO_PI_SERVER_SAFE_INCLUDE #include /**/ "ace/post.h" diff --git a/TAO/tao/PI_Server/ServerInterceptorAdapter.cpp b/TAO/tao/PI_Server/ServerInterceptorAdapter.cpp index 257ac0c63e0..1b83147c41e 100644 --- a/TAO/tao/PI_Server/ServerInterceptorAdapter.cpp +++ b/TAO/tao/PI_Server/ServerInterceptorAdapter.cpp @@ -8,7 +8,7 @@ ACE_RCSID (PortableServer, ServerInterceptorAdapter, "$Id$") -#include "tao/PortableServer/ServerRequestInfo.h" +#include "ServerRequestInfo.h" #include "tao/PortableServer/PICurrent_Guard.h" #include "tao/ServerRequestInterceptor_Adapter.h" @@ -24,7 +24,11 @@ TAO::ServerRequestInterceptor_Adapter_Impl::ServerRequestInterceptor_Adapter_Imp void TAO::ServerRequestInterceptor_Adapter_Impl::tao_ft_interception_point ( TAO_ServerRequest &server_request, - TAO::ServerRequestInfo * ri, + TAO::Argument * const args[], + size_t nargs, + void * servant_upcall, + CORBA::TypeCode_ptr const * exceptions, + size_t nexceptions, CORBA::OctetSeq_out oc ACE_ENV_ARG_DECL) { @@ -80,7 +84,11 @@ TAO::ServerRequestInterceptor_Adapter_Impl::tao_ft_interception_point ( void TAO::ServerRequestInterceptor_Adapter_Impl::receive_request_service_contexts ( TAO_ServerRequest &server_request, - TAO::ServerRequestInfo * ri + TAO::Argument * const args[], + size_t nargs, + void * servant_upcall, + CORBA::TypeCode_ptr const * exceptions, + size_t nexceptions ACE_ENV_ARG_DECL) { // This method implements one of the "intermediate" server side @@ -129,27 +137,39 @@ TAO::ServerRequestInterceptor_Adapter_Impl::receive_request_service_contexts ( void TAO::ServerRequestInterceptor_Adapter_Impl::receive_request_service_contexts ( TAO_ServerRequest &server_request, - TAO::ServerRequestInfo * ri + TAO::Argument * const args[], + size_t nargs, + void * servant_upcall, + CORBA::TypeCode_ptr const * exceptions, + size_t nexceptions ACE_ENV_ARG_DECL) { // This method implements one of the "starting" server side // interception point if extended interceptors are not in place. + TAO::ServerRequestInfo request_info (server_request, + args, + nargs, + servant_upcall, + exceptions, + nexceptions); + ACE_TRY { + // Copy the request scope current (RSC) to the thread scope // 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 */); for (size_t i = 0 ; i < this->interceptor_list_.size(); ++i) { this->interceptor_list_.interceptor(i)-> receive_request_service_contexts ( - ri + &request_info ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; @@ -160,9 +180,14 @@ TAO::ServerRequestInterceptor_Adapter_Impl::receive_request_service_contexts ( } ACE_CATCH (PortableInterceptor::ForwardRequest, exc) { - ri->forward_reference (exc); + server_request.forward_location (exc.forward.in ()); + server_request.reply_status (PortableInterceptor::LOCATION_FORWARD); this->send_other (server_request, - ri + args, + nargs, + servant_upcall, + exceptions, + nexceptions ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; } @@ -175,7 +200,11 @@ TAO::ServerRequestInterceptor_Adapter_Impl::receive_request_service_contexts ( void TAO::ServerRequestInterceptor_Adapter_Impl::receive_request ( TAO_ServerRequest &server_request, - TAO::ServerRequestInfo * ri + TAO::Argument * const args[], + size_t nargs, + void * servant_upcall, + CORBA::TypeCode_ptr const * exceptions, + size_t nexceptions ACE_ENV_ARG_DECL) { // This method implements an "intermediate" server side interception @@ -195,12 +224,19 @@ TAO::ServerRequestInterceptor_Adapter_Impl::receive_request ( ACE_THROW (CORBA::INTERNAL ()); } + TAO::ServerRequestInfo request_info (server_request, + args, + nargs, + servant_upcall, + exceptions, + nexceptions); + ACE_TRY { for (size_t i = 0; i < server_request.interceptor_count (); ++i) { this->interceptor_list_.interceptor(i)->receive_request ( - ri + &request_info ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; @@ -211,9 +247,14 @@ TAO::ServerRequestInterceptor_Adapter_Impl::receive_request ( } ACE_CATCH (PortableInterceptor::ForwardRequest, exc) { - ri->forward_reference (exc); + server_request.forward_location (exc.forward.in ()); + server_request.reply_status (PortableInterceptor::LOCATION_FORWARD); this->send_other (server_request, - ri + args, + nargs, + servant_upcall, + exceptions, + nexceptions ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; } @@ -225,7 +266,11 @@ TAO::ServerRequestInterceptor_Adapter_Impl::receive_request ( void TAO::ServerRequestInterceptor_Adapter_Impl::send_reply ( TAO_ServerRequest &server_request, - TAO::ServerRequestInfo * ri + TAO::Argument * const args[], + size_t nargs, + void * servant_upcall, + CORBA::TypeCode_ptr const * exceptions, + size_t nexceptions ACE_ENV_ARG_DECL) { // This is an "ending" interception point so we only process the @@ -235,6 +280,13 @@ TAO::ServerRequestInterceptor_Adapter_Impl::send_reply ( // they were pushed onto the stack since this is an "ending" // interception point. + TAO::ServerRequestInfo request_info (server_request, + args, + nargs, + servant_upcall, + exceptions, + nexceptions); + // Unwind the stack. size_t const len = server_request.interceptor_count (); for (size_t i = 0; i < len; ++i) @@ -247,7 +299,7 @@ TAO::ServerRequestInterceptor_Adapter_Impl::send_reply ( this->interceptor_list_.interceptor ( server_request.interceptor_count ())->send_reply ( - ri + &request_info ACE_ENV_ARG_PARAMETER); ACE_CHECK; } @@ -260,7 +312,11 @@ TAO::ServerRequestInterceptor_Adapter_Impl::send_reply ( void TAO::ServerRequestInterceptor_Adapter_Impl::send_exception ( TAO_ServerRequest &server_request, - TAO::ServerRequestInfo *ri + TAO::Argument * const args[], + size_t nargs, + void * servant_upcall, + CORBA::TypeCode_ptr const * exceptions, + size_t nexceptions ACE_ENV_ARG_DECL) { // This is an "ending" server side interception point so we only @@ -270,6 +326,13 @@ TAO::ServerRequestInterceptor_Adapter_Impl::send_exception ( // they were pushed onto the stack since this is an "ending" server // side interception point. + TAO::ServerRequestInfo request_info (server_request, + args, + nargs, + servant_upcall, + exceptions, + nexceptions); + ACE_TRY { // Unwind the flow stack. @@ -284,16 +347,21 @@ TAO::ServerRequestInterceptor_Adapter_Impl::send_exception ( this->interceptor_list_.interceptor ( server_request.interceptor_count ())->send_exception ( - ri + &request_info ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; } } ACE_CATCH (PortableInterceptor::ForwardRequest, exc) { - ri->forward_reference (exc); + server_request.forward_location (exc.forward.in ()); + server_request.reply_status (PortableInterceptor::LOCATION_FORWARD); this->send_other (server_request, - ri + args, + nargs, + servant_upcall, + exceptions, + nexceptions ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; } @@ -309,15 +377,19 @@ TAO::ServerRequestInterceptor_Adapter_Impl::send_exception ( // drops to zero, i.e., once each interceptor has been invoked. // This prevents infinite recursion from occuring. - ri->exception (&ACE_ANY_EXCEPTION); + server_request.caught_exception (&ACE_ANY_EXCEPTION); this->send_exception (server_request, - ri + args, + nargs, + servant_upcall, + exceptions, + nexceptions ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; PortableInterceptor::ReplyStatus status = - ri->reply_status (ACE_ENV_SINGLE_ARG_PARAMETER); + server_request.reply_status (ACE_ENV_SINGLE_ARG_PARAMETER); ACE_TRY_CHECK; // Only re-throw the exception if it hasn't been transformed by @@ -334,12 +406,23 @@ TAO::ServerRequestInterceptor_Adapter_Impl::send_exception ( void TAO::ServerRequestInterceptor_Adapter_Impl::send_other ( TAO_ServerRequest &server_request, - TAO::ServerRequestInfo * ri + TAO::Argument * const args[], + size_t nargs, + void * servant_upcall, + CORBA::TypeCode_ptr const * exceptions, + size_t nexceptions ACE_ENV_ARG_DECL) { // This is an "ending" server side interception point so we only // process the interceptors pushed on to the flow stack. + TAO::ServerRequestInfo request_info (server_request, + args, + nargs, + servant_upcall, + exceptions, + nexceptions); + // Notice that the interceptors are processed in the opposite order // they were pushed onto the stack since this is an "ending" server // side interception point. @@ -358,16 +441,21 @@ TAO::ServerRequestInterceptor_Adapter_Impl::send_other ( this->interceptor_list_.interceptor( server_request.interceptor_count ())->send_other ( - ri + &request_info ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; } } ACE_CATCH (PortableInterceptor::ForwardRequest, exc) { - ri->forward_reference (exc); + server_request.forward_location (exc.forward.in ()); + server_request.reply_status (PortableInterceptor::LOCATION_FORWARD); this->send_other (server_request, - ri + args, + nargs, + servant_upcall, + exceptions, + nexceptions ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; } diff --git a/TAO/tao/PI_Server/ServerInterceptorAdapter.h b/TAO/tao/PI_Server/ServerInterceptorAdapter.h index dab75bd4400..97be061c7ef 100644 --- a/TAO/tao/PI_Server/ServerInterceptorAdapter.h +++ b/TAO/tao/PI_Server/ServerInterceptorAdapter.h @@ -76,10 +76,15 @@ namespace TAO /// point. It will be used as the first interception point and it is /// proprietary to TAO. /// @@ Will go away once Bug 1369 is fixed - void tao_ft_interception_point (TAO_ServerRequest &server_request, - TAO::ServerRequestInfo *ri, - CORBA::OctetSeq_out oc - ACE_ENV_ARG_DECL); + void tao_ft_interception_point ( + TAO_ServerRequest &server_request, + TAO::Argument * const args[], + size_t nargs, + void * servant_upcall, + CORBA::TypeCode_ptr const * exceptions, + size_t nexceptions, + CORBA::OctetSeq_out oc + ACE_ENV_ARG_DECL); #endif /*TAO_HAS_EXTENDED_FT_INTERCEPTORS*/ /// This method implements the "intermediate" server side @@ -89,32 +94,57 @@ namespace TAO /// @note This method should have been the "starting" interception /// point according to the interceptor spec. This will be /// fixed once Bug 1369 is completely done. - void receive_request_service_contexts (TAO_ServerRequest &server_request, - TAO::ServerRequestInfo *ri - ACE_ENV_ARG_DECL); + void receive_request_service_contexts ( + TAO_ServerRequest &server_request, + TAO::Argument * const args[], + size_t nargs, + void * servant_upcall, + CORBA::TypeCode_ptr const * exceptions, + size_t nexceptions + ACE_ENV_ARG_DECL); /// This method an "intermediate" server side interception point. - void receive_request (TAO_ServerRequest &server_request, - TAO::ServerRequestInfo *ri - ACE_ENV_ARG_DECL); + void receive_request ( + TAO_ServerRequest &server_request, + TAO::Argument * const args[], + size_t nargs, + void * servant_upcall, + CORBA::TypeCode_ptr const * exceptions, + size_t nexceptions + ACE_ENV_ARG_DECL); /// This method implements one of the "ending" server side /// interception points. - void send_reply (TAO_ServerRequest &server_request, - TAO::ServerRequestInfo *ri - ACE_ENV_ARG_DECL); + void send_reply ( + TAO_ServerRequest &server_request, + TAO::Argument * const args[], + size_t nargs, + void * servant_upcall, + CORBA::TypeCode_ptr const * exceptions, + size_t nexceptions + ACE_ENV_ARG_DECL); /// This method implements one of the "ending" server side /// interception points. - void send_exception (TAO_ServerRequest &server_request, - TAO::ServerRequestInfo *ri - ACE_ENV_ARG_DECL); + void send_exception ( + TAO_ServerRequest &server_request, + TAO::Argument * const args[], + size_t nargs, + void * servant_upcall, + CORBA::TypeCode_ptr const * exceptions, + size_t nexceptions + ACE_ENV_ARG_DECL); /// This method implements one of the "ending" server side /// interception points. - void send_other (TAO_ServerRequest &server_request, - TAO::ServerRequestInfo *ri - ACE_ENV_ARG_DECL); + void send_other ( + TAO_ServerRequest &server_request, + TAO::Argument * const args[], + size_t nargs, + void * servant_upcall, + CORBA::TypeCode_ptr const * exceptions, + size_t nexceptions + ACE_ENV_ARG_DECL); //@} /// Register an interceptor. diff --git a/TAO/tao/PortableServer/ServerRequestInfo.cpp b/TAO/tao/PI_Server/ServerRequestInfo.cpp index 4df6a5844fd..33c9d149cc1 100644 --- a/TAO/tao/PortableServer/ServerRequestInfo.cpp +++ b/TAO/tao/PI_Server/ServerRequestInfo.cpp @@ -8,9 +8,9 @@ ACE_RCSID (PortableServer, ServerRequestInfo, "$Id$") -#include "Root_POA.h" -#include "Servant_Upcall.h" -#include "Servant_Base.h" +#include "tao/PortableServer/Root_POA.h" +#include "tao/PortableServer/Servant_Upcall.h" +#include "tao/PortableServer/Servant_Base.h" #include "tao/TAO_Server_Request.h" #include "tao/ORB_Core.h" @@ -219,20 +219,20 @@ PortableInterceptor::ReplyStatus TAO::ServerRequestInfo::reply_status (ACE_ENV_SINGLE_ARG_DECL) ACE_THROW_SPEC ((CORBA::SystemException)) { - if (this->reply_status_ == -1) + if (this->server_request_.reply_status () == -1) // A reply hasn't been received yet. ACE_THROW_RETURN (CORBA::BAD_INV_ORDER (CORBA::OMGVMCID | 14, CORBA::COMPLETED_NO), -1); - return this->reply_status_; + return this->server_request_.reply_status (); } CORBA::Object_ptr TAO::ServerRequestInfo::forward_reference (ACE_ENV_SINGLE_ARG_DECL) ACE_THROW_SPEC ((CORBA::SystemException)) { - if (this->reply_status_ != PortableInterceptor::LOCATION_FORWARD) + if (this->server_request_.reply_status () != PortableInterceptor::LOCATION_FORWARD) ACE_THROW_RETURN (CORBA::BAD_INV_ORDER (CORBA::OMGVMCID | 14, CORBA::COMPLETED_NO), CORBA::Object::_nil ()); @@ -324,8 +324,8 @@ CORBA::Any * TAO::ServerRequestInfo::sending_exception (ACE_ENV_SINGLE_ARG_DECL) ACE_THROW_SPEC ((CORBA::SystemException)) { - if (this->reply_status_ != PortableInterceptor::SYSTEM_EXCEPTION - && this->reply_status_ != PortableInterceptor::USER_EXCEPTION) + if (this->server_request_.reply_status () != PortableInterceptor::SYSTEM_EXCEPTION + && this->server_request_.reply_status () != PortableInterceptor::USER_EXCEPTION) { ACE_THROW_RETURN (CORBA::BAD_INV_ORDER (CORBA::OMGVMCID | 14, CORBA::COMPLETED_NO), @@ -347,12 +347,12 @@ TAO::ServerRequestInfo::sending_exception (ACE_ENV_SINGLE_ARG_DECL) CORBA::COMPLETED_NO)); ACE_CHECK_RETURN (0); - CORBA::Any_var caught_exception = temp; + CORBA::Any_var caught_exception_var = temp; - if (this->caught_exception_ != 0) - (*temp) <<= *(this->caught_exception_); + if (this->server_request_.caught_exception () != 0) + (*temp) <<= *(this->server_request_.caught_exception ()); - return caught_exception._retn (); + return caught_exception_var._retn (); } char * diff --git a/TAO/tao/PortableServer/ServerRequestInfo.h b/TAO/tao/PI_Server/ServerRequestInfo.h index 47fb4d1b3f5..bef3ea8d150 100644 --- a/TAO/tao/PortableServer/ServerRequestInfo.h +++ b/TAO/tao/PI_Server/ServerRequestInfo.h @@ -27,13 +27,13 @@ #if (TAO_HAS_INTERCEPTORS == 1) -#include "portableserver_export.h" -#include "tao/ServerRequestInfoC.h" +#include "pi_server_export.h" +#include "ServerRequestInfoC.h" #include "tao/LocalObject.h" #include "tao/OctetSeqC.h" #include "tao/TAO_Server_Request.h" -#include "tao/PIForwardRequestC.h" #include "tao/PortableInterceptorC.h" +#include "tao/PI/PIForwardRequestC.h" #if defined(_MSC_VER) #pragma warning(push) @@ -65,7 +65,7 @@ namespace TAO * @note This class is currently not meant to be reference counted * since it is instantiated on the stack. */ - class TAO_PortableServer_Export ServerRequestInfo + class TAO_PI_Server_Export ServerRequestInfo : public virtual PortableInterceptor::ServerRequestInfo, public virtual CORBA::LocalObject { @@ -241,12 +241,6 @@ namespace TAO */ //@{ - /// Change the exception status. - void exception (CORBA::Exception *exception); - - /// Set the status of the received reply. - void reply_status (PortableInterceptor::ReplyStatus s); - /// Extract the forward object reference from the /// @c PortableInterceptor::ForwardRequest exception, and set the /// reply status flag accordingly. @@ -300,13 +294,6 @@ namespace TAO /// The number of elements in the @c exceptions_ array. size_t const nexceptions_; - - /// Pointer to the caught exception. - CORBA::Exception * caught_exception_; - - /// Reply status for the current request. - PortableInterceptor::ReplyStatus reply_status_; - }; } // End namespace TAO diff --git a/TAO/tao/PortableServer/ServerRequestInfo.inl b/TAO/tao/PI_Server/ServerRequestInfo.inl index ba414ac59c5..cd637efd889 100644 --- a/TAO/tao/PortableServer/ServerRequestInfo.inl +++ b/TAO/tao/PI_Server/ServerRequestInfo.inl @@ -20,38 +20,17 @@ TAO::ServerRequestInfo::ServerRequestInfo ( static_cast<TAO::Portable_Server::Servant_Upcall *> (servant_upcall)) , exceptions_ (exceptions) , nexceptions_ (nexceptions) - , caught_exception_ (0) - , reply_status_ (-1) { } ACE_INLINE void -TAO::ServerRequestInfo::exception (CORBA::Exception * exception) -{ - if (CORBA::SystemException::_downcast (exception) != 0) - this->reply_status_ = PortableInterceptor::SYSTEM_EXCEPTION; - else if (CORBA::UserException::_downcast (exception) != 0) - this->reply_status_ = PortableInterceptor::USER_EXCEPTION; - - // @@ Is it possible for both of the above downcasts to fail? - - this->caught_exception_ = exception; -} - -ACE_INLINE void -TAO::ServerRequestInfo::reply_status (PortableInterceptor::ReplyStatus s) -{ - this->reply_status_ = s; -} - -ACE_INLINE void TAO::ServerRequestInfo::forward_reference ( PortableInterceptor::ForwardRequest &exc) { // Note that we're converting the ForwardRequest exception in to a // LOCATION_FORWARD reply, so we do not set the exception status. - this->reply_status_ = PortableInterceptor::LOCATION_FORWARD; + this->server_request_.reply_status (PortableInterceptor::LOCATION_FORWARD); // Store the forward reference in the TAO_ServerRequest object. this->server_request_.forward_location (exc.forward.in ()); @@ -63,7 +42,7 @@ TAO::ServerRequestInfo::forward_reference (CORBA::Object_ptr obj) // We only get here if a servant manager threw a // PortableServer::ForwardRequest exception. - this->reply_status_ = PortableInterceptor::LOCATION_FORWARD; + this->server_request_.reply_status (PortableInterceptor::LOCATION_FORWARD); // Store the forward reference in the TAO_ServerRequest object. this->server_request_.forward_location (obj); diff --git a/TAO/tao/ServerRequestInfo.pidl b/TAO/tao/PI_Server/ServerRequestInfo.pidl index f4f99d380a1..9670dd42b02 100644 --- a/TAO/tao/ServerRequestInfo.pidl +++ b/TAO/tao/PI_Server/ServerRequestInfo.pidl @@ -22,7 +22,7 @@ #ifndef _SERVER_REQUESTINFO_PIDL_ #define _SERVER_REQUESTINFO_PIDL_ -#include <RequestInfo.pidl> +#include "tao/PI/RequestInfo.pidl" #include <orb_types.pidl> #include <Policy_Forward.pidl> diff --git a/TAO/tao/ServerRequestInfoA.cpp b/TAO/tao/PI_Server/ServerRequestInfoA.cpp index b97a8646554..b97a8646554 100644 --- a/TAO/tao/ServerRequestInfoA.cpp +++ b/TAO/tao/PI_Server/ServerRequestInfoA.cpp diff --git a/TAO/tao/ServerRequestInfoC.cpp b/TAO/tao/PI_Server/ServerRequestInfoC.cpp index eab818b9b7f..eab818b9b7f 100644 --- a/TAO/tao/ServerRequestInfoC.cpp +++ b/TAO/tao/PI_Server/ServerRequestInfoC.cpp diff --git a/TAO/tao/ServerRequestInfoC.h b/TAO/tao/PI_Server/ServerRequestInfoC.h index 38b6259f83d..99849c7b129 100644 --- a/TAO/tao/ServerRequestInfoC.h +++ b/TAO/tao/PI_Server/ServerRequestInfoC.h @@ -40,7 +40,7 @@ # pragma once #endif /* ACE_LACKS_PRAGMA_ONCE */ -#include "tao/TAO_Export.h" +#include "tao/PI_Server/pi_server_export.h" #include "tao/ORB.h" #include "tao/SystemException.h" #include "tao/Environment.h" @@ -50,14 +50,14 @@ #include "tao/TypeCode.h" #include "tao/Objref_VarOut_T.h" -#include "tao/RequestInfoC.h" +#include "tao/PI/RequestInfoC.h" #include "tao/orb_typesC.h" #include "tao/Policy_ForwardC.h" #if defined (TAO_EXPORT_MACRO) #undef TAO_EXPORT_MACRO #endif -#define TAO_EXPORT_MACRO TAO_Export +#define TAO_EXPORT_MACRO TAO_PI_Server_Export #if defined(_MSC_VER) #pragma warning(push) @@ -73,22 +73,22 @@ namespace PortableInterceptor { - + // TAO_IDL - Generated from // be\be_interface.cpp:598 #if !defined (_PORTABLEINTERCEPTOR_SERVERREQUESTINFO__VAR_OUT_CH_) #define _PORTABLEINTERCEPTOR_SERVERREQUESTINFO__VAR_OUT_CH_ - + class ServerRequestInfo; typedef ServerRequestInfo *ServerRequestInfo_ptr; - + typedef TAO_Objref_Var_T< ServerRequestInfo > ServerRequestInfo_var; - + typedef TAO_Objref_Out_T< ServerRequestInfo @@ -96,105 +96,105 @@ namespace PortableInterceptor ServerRequestInfo_out; #endif /* end #if !defined */ - + // TAO_IDL - Generated from // be\be_visitor_interface/interface_ch.cpp:54 #if !defined (_PORTABLEINTERCEPTOR_SERVERREQUESTINFO_CH_) #define _PORTABLEINTERCEPTOR_SERVERREQUESTINFO_CH_ - - class TAO_Export ServerRequestInfo + + class TAO_PI_Server_Export ServerRequestInfo : public virtual ::PortableInterceptor::RequestInfo { public: typedef ServerRequestInfo_ptr _ptr_type; typedef ServerRequestInfo_var _var_type; - + // The static operations. static ServerRequestInfo_ptr _duplicate (ServerRequestInfo_ptr obj); - + static void _tao_release (ServerRequestInfo_ptr obj); - + static ServerRequestInfo_ptr _narrow ( CORBA::Object_ptr obj ACE_ENV_ARG_DECL_WITH_DEFAULTS ); - + static ServerRequestInfo_ptr _unchecked_narrow ( CORBA::Object_ptr obj ACE_ENV_ARG_DECL_WITH_DEFAULTS ); - + static ServerRequestInfo_ptr _nil (void) { return static_cast<ServerRequestInfo_ptr> (0); } - + static void _tao_any_destructor (void *); - + // TAO_IDL - Generated from // be\be_visitor_operation/operation_ch.cpp:46 - + virtual CORBA::Any * sending_exception ( ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS ) ACE_THROW_SPEC (( CORBA::SystemException )) = 0; - + // TAO_IDL - Generated from // be\be_visitor_operation/operation_ch.cpp:46 - + virtual char * server_id ( ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS ) ACE_THROW_SPEC (( CORBA::SystemException )) = 0; - + // TAO_IDL - Generated from // be\be_visitor_operation/operation_ch.cpp:46 - + virtual char * orb_id ( ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS ) ACE_THROW_SPEC (( CORBA::SystemException )) = 0; - + // TAO_IDL - Generated from // be\be_visitor_operation/operation_ch.cpp:46 - + virtual ::PortableInterceptor::AdapterName * adapter_name ( ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS ) ACE_THROW_SPEC (( CORBA::SystemException )) = 0; - + // TAO_IDL - Generated from // be\be_visitor_operation/operation_ch.cpp:46 - + virtual ::PortableInterceptor::ObjectId * object_id ( ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS ) ACE_THROW_SPEC (( CORBA::SystemException )) = 0; - + // TAO_IDL - Generated from // be\be_visitor_operation/operation_ch.cpp:46 - + virtual ::CORBA::OctetSeq * adapter_id ( ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS ) ACE_THROW_SPEC (( CORBA::SystemException )) = 0; - + // TAO_IDL - Generated from // be\be_visitor_operation/operation_ch.cpp:46 - + virtual char * target_most_derived_interface ( ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS ) @@ -278,7 +278,7 @@ namespace PortableInterceptor // TAO_IDL - Generated from // be\be_visitor_typecode/typecode_decl.cpp:44 - extern TAO_Export ::CORBA::TypeCode_ptr const _tc_ServerRequestInfo; + extern TAO_PI_Server_Export ::CORBA::TypeCode_ptr const _tc_ServerRequestInfo; // TAO_IDL - Generated from // be\be_visitor_module/module_ch.cpp:66 @@ -296,7 +296,7 @@ namespace TAO #define _PORTABLEINTERCEPTOR_SERVERREQUESTINFO__TRAITS_CH_ template<> - struct TAO_Export Objref_Traits< ::PortableInterceptor::ServerRequestInfo> + struct TAO_PI_Server_Export Objref_Traits< ::PortableInterceptor::ServerRequestInfo> { static ::PortableInterceptor::ServerRequestInfo_ptr duplicate ( ::PortableInterceptor::ServerRequestInfo_ptr @@ -317,9 +317,9 @@ namespace TAO // TAO_IDL - Generated from // be\be_visitor_interface/any_op_ch.cpp:52 -TAO_Export void operator<<= (CORBA::Any &, PortableInterceptor::ServerRequestInfo_ptr); // copying -TAO_Export void operator<<= (CORBA::Any &, PortableInterceptor::ServerRequestInfo_ptr *); // non-copying -TAO_Export CORBA::Boolean operator>>= (const CORBA::Any &, PortableInterceptor::ServerRequestInfo_ptr &); +TAO_PI_Server_Export void operator<<= (CORBA::Any &, PortableInterceptor::ServerRequestInfo_ptr); // copying +TAO_PI_Server_Export void operator<<= (CORBA::Any &, PortableInterceptor::ServerRequestInfo_ptr *); // non-copying +TAO_PI_Server_Export CORBA::Boolean operator>>= (const CORBA::Any &, PortableInterceptor::ServerRequestInfo_ptr &); // TAO_IDL - Generated from // be\be_codegen.cpp:955 diff --git a/TAO/tao/ServerRequestInfoS.h b/TAO/tao/PI_Server/ServerRequestInfoS.h index 17b1360599e..17b1360599e 100644 --- a/TAO/tao/ServerRequestInfoS.h +++ b/TAO/tao/PI_Server/ServerRequestInfoS.h diff --git a/TAO/tao/PI_Server/ServerRequestInterceptor.pidl b/TAO/tao/PI_Server/ServerRequestInterceptor.pidl index 317f4d79ee6..1235962e161 100644 --- a/TAO/tao/PI_Server/ServerRequestInterceptor.pidl +++ b/TAO/tao/PI_Server/ServerRequestInterceptor.pidl @@ -27,8 +27,8 @@ #define _SERVER_REQUEST_INTERCEPTOR_IDL_ #include "tao/PI/Interceptor.pidl" +#include "tao/PI/PIForwardRequest.pidl" #include <OctetSeq.pidl> -#include <PIForwardRequest.pidl> module PortableInterceptor { diff --git a/TAO/tao/PI_Server/ServerRequestInterceptorC.h b/TAO/tao/PI_Server/ServerRequestInterceptorC.h index 69d8fec7f52..4f432307e1d 100644 --- a/TAO/tao/PI_Server/ServerRequestInterceptorC.h +++ b/TAO/tao/PI_Server/ServerRequestInterceptorC.h @@ -48,8 +48,8 @@ #include "tao/Objref_VarOut_T.h" #include "tao/PI/InterceptorC.h" +#include "tao/PI/PIForwardRequestC.h" #include "tao/OctetSeqC.h" -#include "tao/PIForwardRequestC.h" #if defined (TAO_EXPORT_MACRO) #undef TAO_EXPORT_MACRO @@ -70,22 +70,22 @@ namespace PortableInterceptor { - + // TAO_IDL - Generated from // be\be_interface.cpp:598 #if !defined (_PORTABLEINTERCEPTOR_SERVERREQUESTINFO__VAR_OUT_CH_) #define _PORTABLEINTERCEPTOR_SERVERREQUESTINFO__VAR_OUT_CH_ - + class ServerRequestInfo; typedef ServerRequestInfo *ServerRequestInfo_ptr; - + typedef TAO_Objref_Var_T< ServerRequestInfo > ServerRequestInfo_var; - + typedef TAO_Objref_Out_T< ServerRequestInfo @@ -93,22 +93,22 @@ namespace PortableInterceptor ServerRequestInfo_out; #endif /* end #if !defined */ - + // TAO_IDL - Generated from // be\be_interface.cpp:598 #if !defined (_PORTABLEINTERCEPTOR_SERVERREQUESTINTERCEPTOR__VAR_OUT_CH_) #define _PORTABLEINTERCEPTOR_SERVERREQUESTINTERCEPTOR__VAR_OUT_CH_ - + class ServerRequestInterceptor; typedef ServerRequestInterceptor *ServerRequestInterceptor_ptr; - + typedef TAO_Objref_Var_T< ServerRequestInterceptor > ServerRequestInterceptor_var; - + typedef TAO_Objref_Out_T< ServerRequestInterceptor @@ -116,45 +116,45 @@ namespace PortableInterceptor ServerRequestInterceptor_out; #endif /* end #if !defined */ - + // TAO_IDL - Generated from // be\be_visitor_interface/interface_ch.cpp:54 #if !defined (_PORTABLEINTERCEPTOR_SERVERREQUESTINTERCEPTOR_CH_) #define _PORTABLEINTERCEPTOR_SERVERREQUESTINTERCEPTOR_CH_ - + class TAO_PI_Server_Export ServerRequestInterceptor : public virtual ::PortableInterceptor::Interceptor { public: typedef ServerRequestInterceptor_ptr _ptr_type; typedef ServerRequestInterceptor_var _var_type; - + // The static operations. static ServerRequestInterceptor_ptr _duplicate (ServerRequestInterceptor_ptr obj); - + static void _tao_release (ServerRequestInterceptor_ptr obj); - + static ServerRequestInterceptor_ptr _narrow ( CORBA::Object_ptr obj ACE_ENV_ARG_DECL_WITH_DEFAULTS ); - + static ServerRequestInterceptor_ptr _unchecked_narrow ( CORBA::Object_ptr obj ACE_ENV_ARG_DECL_WITH_DEFAULTS ); - + static ServerRequestInterceptor_ptr _nil (void) { return static_cast<ServerRequestInterceptor_ptr> (0); } - + static void _tao_any_destructor (void *); - + // TAO_IDL - Generated from // be\be_visitor_operation/operation_ch.cpp:46 - + #if TAO_HAS_EXTENDED_FT_INTERCEPTORS == 1 virtual void tao_ft_interception_point ( @@ -168,10 +168,10 @@ namespace PortableInterceptor )) {} #endif /* TAO_HAS_EXTENDED_FT_INTERCEPTORS */ - + // TAO_IDL - Generated from // be\be_visitor_operation/operation_ch.cpp:46 - + virtual void receive_request_service_contexts ( ::PortableInterceptor::ServerRequestInfo_ptr ri ACE_ENV_ARG_DECL_WITH_DEFAULTS @@ -180,10 +180,10 @@ namespace PortableInterceptor CORBA::SystemException, ::PortableInterceptor::ForwardRequest )) = 0; - + // TAO_IDL - Generated from // be\be_visitor_operation/operation_ch.cpp:46 - + virtual void receive_request ( ::PortableInterceptor::ServerRequestInfo_ptr ri ACE_ENV_ARG_DECL_WITH_DEFAULTS @@ -192,10 +192,10 @@ namespace PortableInterceptor CORBA::SystemException, ::PortableInterceptor::ForwardRequest )) = 0; - + // TAO_IDL - Generated from // be\be_visitor_operation/operation_ch.cpp:46 - + virtual void send_reply ( ::PortableInterceptor::ServerRequestInfo_ptr ri ACE_ENV_ARG_DECL_WITH_DEFAULTS diff --git a/TAO/tao/PolicyFactory_Registry_Factory.cpp b/TAO/tao/PolicyFactory_Registry_Factory.cpp new file mode 100644 index 00000000000..9f817b31876 --- /dev/null +++ b/TAO/tao/PolicyFactory_Registry_Factory.cpp @@ -0,0 +1,11 @@ +//$Id$ + +#include "PolicyFactory_Registry_Factory.h" + +ACE_RCSID (tao, + PolicyFactory_Registry_Factory, + "$Id$") + +TAO_PolicyFactory_Registry_Factory::~TAO_PolicyFactory_Registry_Factory (void) +{ +} diff --git a/TAO/tao/PolicyFactory_Registry_Factory.h b/TAO/tao/PolicyFactory_Registry_Factory.h index f8a86ff8fad..5d7ac654eaa 100644 --- a/TAO/tao/PolicyFactory_Registry_Factory.h +++ b/TAO/tao/PolicyFactory_Registry_Factory.h @@ -33,6 +33,8 @@ class TAO_Export TAO_PolicyFactory_Registry_Factory : public ACE_Service_Object { public: + virtual ~TAO_PolicyFactory_Registry_Factory (void); + virtual TAO::PolicyFactory_Registry_Adapter* create (void) = 0; }; diff --git a/TAO/tao/PortableInterceptor.pidl b/TAO/tao/PortableInterceptor.pidl index 0f9d16f4e3b..90eee47b8f5 100644 --- a/TAO/tao/PortableInterceptor.pidl +++ b/TAO/tao/PortableInterceptor.pidl @@ -38,8 +38,6 @@ #include <Messaging_SyncScope.pidl> #include <InvalidSlot.pidl> -#include <ClientRequestInfo.pidl> -#include <ServerRequestInfo.pidl> #include <PICurrent.pidl> module PortableInterceptor { diff --git a/TAO/tao/PortableInterceptorC.h b/TAO/tao/PortableInterceptorC.h index 47a84dfc709..cd207a3911f 100644 --- a/TAO/tao/PortableInterceptorC.h +++ b/TAO/tao/PortableInterceptorC.h @@ -48,8 +48,6 @@ #include "tao/PI_ForwardC.h" #include "tao/Messaging_SyncScopeC.h" #include "tao/InvalidSlotC.h" -#include "tao/ClientRequestInfoC.h" -#include "tao/ServerRequestInfoC.h" #include "tao/PICurrentC.h" #if defined (TAO_EXPORT_MACRO) diff --git a/TAO/tao/PortableServer/Basic_SArguments.cpp b/TAO/tao/PortableServer/Basic_SArguments.cpp deleted file mode 100644 index 75c2e33d850..00000000000 --- a/TAO/tao/PortableServer/Basic_SArguments.cpp +++ /dev/null @@ -1,145 +0,0 @@ -// $Id$ - -#include "Basic_SArguments.h" - -ACE_RCSID (PortableServer, - Basic_SArguments, - "$Id$") - -#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) - -template class TAO::SArg_Traits_T<void>; -template class TAO::SArg_Traits_T<CORBA::Short>; -template class TAO::SArg_Traits_T<CORBA::Long>; -template class TAO::SArg_Traits_T<CORBA::UShort>; -template class TAO::SArg_Traits_T<CORBA::ULong>; -template class TAO::SArg_Traits_T<CORBA::Float>; -template class TAO::SArg_Traits_T<CORBA::Double>; -template class TAO::SArg_Traits_T<CORBA::LongLong>; -template class TAO::SArg_Traits_T<CORBA::ULongLong>; -template class TAO::SArg_Traits_T<CORBA::LongDouble>; - -template class TAO::Basic_SArg_Traits_T<CORBA::Short>; -template class TAO::Basic_SArg_Traits_T<CORBA::Long>; -template class TAO::Basic_SArg_Traits_T<CORBA::UShort>; -template class TAO::Basic_SArg_Traits_T<CORBA::ULong>; -template class TAO::Basic_SArg_Traits_T<CORBA::Float>; -template class TAO::Basic_SArg_Traits_T<CORBA::Double>; -template class TAO::Basic_SArg_Traits_T<CORBA::LongLong>; -template class TAO::Basic_SArg_Traits_T<CORBA::ULongLong>; -template class TAO::Basic_SArg_Traits_T<CORBA::LongDouble>; - -template class TAO::In_Basic_SArgument_T<CORBA::Short>; -template class TAO::Inout_Basic_SArgument_T<CORBA::Short>; -template class TAO::Out_Basic_SArgument_T<CORBA::Short>; -template class TAO::Ret_Basic_SArgument_T<CORBA::Short>; - -template class TAO::In_Basic_SArgument_T<CORBA::Long>; -template class TAO::Inout_Basic_SArgument_T<CORBA::Long>; -template class TAO::Out_Basic_SArgument_T<CORBA::Long>; -template class TAO::Ret_Basic_SArgument_T<CORBA::Long>; - -template class TAO::In_Basic_SArgument_T<CORBA::UShort>; -template class TAO::Inout_Basic_SArgument_T<CORBA::UShort>; -template class TAO::Out_Basic_SArgument_T<CORBA::UShort>; -template class TAO::Ret_Basic_SArgument_T<CORBA::UShort>; - -template class TAO::In_Basic_SArgument_T<CORBA::ULong>; -template class TAO::Inout_Basic_SArgument_T<CORBA::ULong>; -template class TAO::Out_Basic_SArgument_T<CORBA::ULong>; -template class TAO::Ret_Basic_SArgument_T<CORBA::ULong>; - -template class TAO::In_Basic_SArgument_T<CORBA::Float>; -template class TAO::Inout_Basic_SArgument_T<CORBA::Float>; -template class TAO::Out_Basic_SArgument_T<CORBA::Float>; -template class TAO::Ret_Basic_SArgument_T<CORBA::Float>; - -template class TAO::In_Basic_SArgument_T<CORBA::Double>; -template class TAO::Inout_Basic_SArgument_T<CORBA::Double>; -template class TAO::Out_Basic_SArgument_T<CORBA::Double>; -template class TAO::Ret_Basic_SArgument_T<CORBA::Double>; - -template class TAO::In_Basic_SArgument_T<CORBA::LongLong>; -template class TAO::Inout_Basic_SArgument_T<CORBA::LongLong>; -template class TAO::Out_Basic_SArgument_T<CORBA::LongLong>; -template class TAO::Ret_Basic_SArgument_T<CORBA::LongLong>; - -template class TAO::In_Basic_SArgument_T<CORBA::ULongLong>; -template class TAO::Inout_Basic_SArgument_T<CORBA::ULongLong>; -template class TAO::Out_Basic_SArgument_T<CORBA::ULongLong>; -template class TAO::Ret_Basic_SArgument_T<CORBA::ULongLong>; - -template class TAO::In_Basic_SArgument_T<CORBA::LongDouble>; -template class TAO::Inout_Basic_SArgument_T<CORBA::LongDouble>; -template class TAO::Out_Basic_SArgument_T<CORBA::LongDouble>; -template class TAO::Ret_Basic_SArgument_T<CORBA::LongDouble>; - -#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) - -#pragma instantiate TAO::SArg_Traits_T<void> -#pragma instantiate TAO::SArg_Traits_T<CORBA::Short> -#pragma instantiate TAO::SArg_Traits_T<CORBA::Long> -#pragma instantiate TAO::SArg_Traits_T<CORBA::UShort> -#pragma instantiate TAO::SArg_Traits_T<CORBA::ULong> -#pragma instantiate TAO::SArg_Traits_T<CORBA::Float> -#pragma instantiate TAO::SArg_Traits_T<CORBA::Double> -#pragma instantiate TAO::SArg_Traits_T<CORBA::LongLong> -#pragma instantiate TAO::SArg_Traits_T<CORBA::ULongLong> -#pragma instantiate TAO::SArg_Traits_T<CORBA::LongDouble> - -#pragma instantiate TAO::Basic_SArg_Traits_T<CORBA::Short> -#pragma instantiate TAO::Basic_SArg_Traits_T<CORBA::Long> -#pragma instantiate TAO::Basic_SArg_Traits_T<CORBA::UShort> -#pragma instantiate TAO::Basic_SArg_Traits_T<CORBA::ULong> -#pragma instantiate TAO::Basic_SArg_Traits_T<CORBA::Float> -#pragma instantiate TAO::Basic_SArg_Traits_T<CORBA::Double> -#pragma instantiate TAO::Basic_SArg_Traits_T<CORBA::LongLong> -#pragma instantiate TAO::Basic_SArg_Traits_T<CORBA::ULongLong> -#pragma instantiate TAO::Basic_SArg_Traits_T<CORBA::LongDouble> - -#pragma instantiate TAO::In_Basic_SArgument_T<CORBA::Short> -#pragma instantiate TAO::Inout_Basic_SArgument_T<CORBA::Short> -#pragma instantiate TAO::Out_Basic_SArgument_T<CORBA::Short> -#pragma instantiate TAO::Ret_Basic_SArgument_T<CORBA::Short> - -#pragma instantiate TAO::In_Basic_SArgument_T<CORBA::Long> -#pragma instantiate TAO::Inout_Basic_SArgument_T<CORBA::Long> -#pragma instantiate TAO::Out_Basic_SArgument_T<CORBA::Long> -#pragma instantiate TAO::Ret_Basic_SArgument_T<CORBA::Long> - -#pragma instantiate TAO::In_Basic_SArgument_T<CORBA::UShort> -#pragma instantiate TAO::Inout_Basic_SArgument_T<CORBA::UShort> -#pragma instantiate TAO::Out_Basic_SArgument_T<CORBA::UShort> -#pragma instantiate TAO::Ret_Basic_SArgument_T<CORBA::UShort> - -#pragma instantiate TAO::In_Basic_SArgument_T<CORBA::ULong> -#pragma instantiate TAO::Inout_Basic_SArgument_T<CORBA::ULong> -#pragma instantiate TAO::Out_Basic_SArgument_T<CORBA::ULong> -#pragma instantiate TAO::Ret_Basic_SArgument_T<CORBA::ULong> - -#pragma instantiate TAO::In_Basic_SArgument_T<CORBA::Float> -#pragma instantiate TAO::Inout_Basic_SArgument_T<CORBA::Float> -#pragma instantiate TAO::Out_Basic_SArgument_T<CORBA::Float> -#pragma instantiate TAO::Ret_Basic_SArgument_T<CORBA::Float> - -#pragma instantiate TAO::In_Basic_SArgument_T<CORBA::Double> -#pragma instantiate TAO::Inout_Basic_SArgument_T<CORBA::Double> -#pragma instantiate TAO::Out_Basic_SArgument_T<CORBA::Double> -#pragma instantiate TAO::Ret_Basic_SArgument_T<CORBA::Double> - -#pragma instantiate TAO::In_Basic_SArgument_T<CORBA::LongLong> -#pragma instantiate TAO::Inout_Basic_SArgument_T<CORBA::LongLong> -#pragma instantiate TAO::Out_Basic_SArgument_T<CORBA::LongLong> -#pragma instantiate TAO::Ret_Basic_SArgument_T<CORBA::LongLong> - -#pragma instantiate TAO::In_Basic_SArgument_T<CORBA::ULongLong> -#pragma instantiate TAO::Inout_Basic_SArgument_T<CORBA::ULongLong> -#pragma instantiate TAO::Out_Basic_SArgument_T<CORBA::ULongLong> -#pragma instantiate TAO::Ret_Basic_SArgument_T<CORBA::ULongLong> - -#pragma instantiate TAO::In_Basic_SArgument_T<CORBA::LongDouble> -#pragma instantiate TAO::Inout_Basic_SArgument_T<CORBA::LongDouble> -#pragma instantiate TAO::Out_Basic_SArgument_T<CORBA::LongDouble> -#pragma instantiate TAO::Ret_Basic_SArgument_T<CORBA::LongDouble> - -#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ diff --git a/TAO/tao/PortableServer/Local_Servant_Base.inl b/TAO/tao/PortableServer/Local_Servant_Base.inl index e6ac4e794a4..4a426bdaa07 100644 --- a/TAO/tao/PortableServer/Local_Servant_Base.inl +++ b/TAO/tao/PortableServer/Local_Servant_Base.inl @@ -1,31 +1,7 @@ // $Id$ ACE_INLINE TAO_Stub * -TAO_Local_ServantBase::_create_stub (ACE_ENV_SINGLE_ARG_DECL) +TAO_Local_ServantBase::_create_stub (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) { -#if 0 - PortableServer::ObjectId_var invalid_oid = - PortableServer::string_to_ObjectId ("invalid"); - - TAO::ObjectKey tmp_key (invalid_oid->length (), - invalid_oid->length (), - invalid_oid->get_buffer (), - 0); - - // It is ok to use TAO_ORB_Core_instance here since the locality - // constrained servant does not really register with a POA or get - // exported remotely. - // - // The correct thing to do is to probably use ORB of the default - // POA. The unfortunate part is that calling default_POA() requires - // the creation of a local stub, hence causing a infinite loop. - return TAO_ORB_Core_instance ()->orb ()->create_stub_object (tmp_key, - this->_interface_repository_id () - ACE_ENV_ARG_PARAMETER); -#else -# if !defined (ACE_HAS_EXCEPTIONS) - ACE_UNUSED_ARG (ACE_ENV_SINGLE_ARG_PARAMETER); -#endif return 0; -#endif } diff --git a/TAO/tao/PortableServer/Object_Adapter.cpp b/TAO/tao/PortableServer/Object_Adapter.cpp index 349f05e5e8c..fcd228b74bf 100644 --- a/TAO/tao/PortableServer/Object_Adapter.cpp +++ b/TAO/tao/PortableServer/Object_Adapter.cpp @@ -8,7 +8,6 @@ #include "Regular_POA.h" #include "Creation_Time.h" #include "POA_Guard.h" -#include "ServerRequestInfo.h" #include "Default_Servant_Dispatcher.h" #include "Collocated_Object_Proxy_Broker.h" #include "POAManager.h" @@ -18,6 +17,7 @@ #include "ace/Auto_Ptr.h" // -- TAO Include -- +#include "tao/PortableInterceptorC.h" #include "tao/ORB.h" #include "tao/ORB_Core.h" #include "tao/TSS_Resources.h" @@ -735,13 +735,6 @@ TAO_Object_Adapter::dispatch (TAO::ObjectKey &key, TAO::ServerRequestInterceptor_Adapter *sri_adapter = orb_core_.serverrequestinterceptor_adapter (); - TAO::ServerRequestInfo ri (request, - 0, // args - 0, // nargs - 0, // servant_upcall - 0, // exceptions - 0); // nexceptions - ACE_TRY { if (sri_adapter != 0) @@ -749,7 +742,11 @@ 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, - &ri, + 0, // args + 0, // nargs + 0, // servant_upcall + 0, // exceptions + 0, // nexceptions ocs.out () ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; @@ -778,7 +775,11 @@ TAO_Object_Adapter::dispatch (TAO::ObjectKey &key, // must be invoked before the operation is dispatched to the // servant. sri_adapter->receive_request_service_contexts (request, - &ri + 0, // args + 0, // nargs + 0, // servant_upcall + 0, // exceptions + 0 // nexceptions ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; @@ -803,11 +804,15 @@ TAO_Object_Adapter::dispatch (TAO::ObjectKey &key, if (result == TAO_Adapter::DS_FORWARD) { - ri.forward_reference (forward_to.ptr ()); + request.forward_location (forward_to.ptr ()); if (sri_adapter != 0) { sri_adapter->send_other (request, - &ri + 0, // args + 0, // nargs + 0, // servant_upcall + 0, // exceptions + 0 // nexceptions ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; } @@ -824,16 +829,19 @@ TAO_Object_Adapter::dispatch (TAO::ObjectKey &key, if (sri_adapter != 0) { - ri.exception (&ACE_ANY_EXCEPTION); + request.caught_exception (&ACE_ANY_EXCEPTION); sri_adapter->send_exception (request, - &ri + 0, // args + 0, // nargs + 0, // servant_upcall + 0, // exceptions + 0 // nexceptions ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; status = - ri.reply_status (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; + request.reply_status (); } // Only re-throw the exception if it hasn't been transformed by diff --git a/TAO/tao/PortableServer/Special_Basic_SArguments.cpp b/TAO/tao/PortableServer/Special_Basic_SArguments.cpp deleted file mode 100644 index 70f5f0c0eb6..00000000000 --- a/TAO/tao/PortableServer/Special_Basic_SArguments.cpp +++ /dev/null @@ -1,167 +0,0 @@ -// $Id$ - -#include "Special_Basic_SArguments.h" - -ACE_RCSID (PortableServer, - Special_Basic_SArguments, - "$Id$") - -#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) - -template class TAO::SArg_Traits<ACE_InputCDR::to_char>; -template class TAO::SArg_Traits<ACE_InputCDR::to_wchar>; -template class TAO::SArg_Traits<ACE_InputCDR::to_octet>; -template class TAO::SArg_Traits<ACE_InputCDR::to_boolean>; - -template class TAO::Special_Basic_SArg_Traits_T<CORBA::Char, - ACE_InputCDR::to_char, - ACE_OutputCDR::from_char>; - -template class TAO::Special_Basic_SArg_Traits_T<CORBA::WChar, - ACE_InputCDR::to_wchar, - ACE_OutputCDR::from_wchar>; - -template class TAO::Special_Basic_SArg_Traits_T<CORBA::Octet, - ACE_InputCDR::to_octet, - ACE_OutputCDR::from_octet>; - -template class TAO::Special_Basic_SArg_Traits_T<CORBA::Boolean, - ACE_InputCDR::to_boolean, - ACE_OutputCDR::from_boolean>; - -template class TAO::In_Special_Basic_SArgument_T<CORBA::Char, - ACE_InputCDR::to_char, - ACE_OutputCDR::from_char; -template class TAO::Inout_Special_Basic_SArgument_T<CORBA::Char, - ACE_InputCDR::to_char, - ACE_OutputCDR::from_char>; -template class TAO::Out_Special_Basic_SArgument_T<CORBA::Char, - ACE_InputCDR::to_char, - ACE_OutputCDR::from_char>; -template class TAO::Ret_Special_Basic_SArgument_T<CORBA::Char, - ACE_InputCDR::to_char, - ACE_OutputCDR::from_char>; - -template class TAO::In_Special_Basic_SArgument_T<CORBA::WChar, - ACE_InputCDR::to_wchar, - ACE_OutputCDR::from_wchar; -template class TAO::Inout_Special_Basic_SArgument_T<CORBA::WChar, - ACE_InputCDR::to_wchar, - ACE_OutputCDR::from_wchar>; -template class TAO::Out_Special_Basic_SArgument_T<CORBA::WChar, - ACE_InputCDR::to_wchar, - ACE_OutputCDR::from_wchar>; -template class TAO::Ret_Special_Basic_SArgument_T<CORBA::WChar, - ACE_InputCDR::to_wchar, - ACE_OutputCDR::from_wchar>; - -template class TAO::In_Special_Basic_SArgument_T<CORBA::Octet, - ACE_InputCDR::to_octet, - ACE_OutputCDR::from_octet; -template class TAO::Inout_Special_Basic_SArgument_T<CORBA::Octet, - ACE_InputCDR::to_octet, - ACE_OutputCDR::from_octet>; -template class TAO::Out_Special_Basic_SArgument_T<CORBA::Octet, - ACE_InputCDR::to_octet, - ACE_OutputCDR::from_octet>; -template class TAO::Ret_Special_Basic_SArgument_T<CORBA::Octet, - ACE_InputCDR::to_octet, - ACE_OutputCDR::from_octet>; - -template class TAO::In_Special_Basic_SArgument_T<CORBA::Boolean, - ACE_InputCDR::to_boolean, - ACE_OutputCDR::from_boolean; -template class TAO::Inout_Special_Basic_SArgument_T<CORBA::Boolean, - ACE_InputCDR::to_boolean, - ACE_OutputCDR::from_boolean>; -template class TAO::Out_Special_Basic_SArgument_T<CORBA::Boolean, - ACE_InputCDR::to_boolean, - ACE_OutputCDR::from_boolean>; -template class TAO::Ret_Special_Basic_SArgument_T<CORBA::Boolean, - ACE_InputCDR::to_boolean, - ACE_OutputCDR::from_boolean>; - -#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) - -#pragma instantiate TAO::SArg_Traits<ACE_InputCDR::to_char> -#pragma instantiate TAO::SArg_Traits<ACE_InputCDR::to_wchar> -#pragma instantiate TAO::SArg_Traits<ACE_InputCDR::to_octet> -#pragma instantiate TAO::SArg_Traits<ACE_InputCDR::to_boolean> - -#pragma instantiate TAO::Special_Basic_SArg_Traits_T< \ - CORBA::Char, \ - ACE_InputCDR::to_char, \ - ACE_OutputCDR::from_char \ - > - -#pragma instantiate TAO::Special_Basic_SArg_Traits_T< \ - CORBA::WChar, \ - ACE_InputCDR::to_wchar, \ - ACE_OutputCDR::from_wchar \ - > - -#pragma instantiate TAO::Special_Basic_SArg_Traits_T< \ - CORBA::Octet, \ - ACE_InputCDR::to_octet, \ - ACE_OutputCDR::from_octet \ - > - -#pragma instantiate TAO::Special_Basic_SArg_Traits_T< \ - CORBA::Boolean, \ - ACE_InputCDR::to_boolean, \ - ACE_OutputCDR::from_boolean \ - > - -#pragma instantiate TAO::In_Special_Basic_SArgument_T<CORBA::Char, \ - ACE_InputCDR::to_char, \ - ACE_OutputCDR::from_char -#pragma instantiate TAO::Inout_Special_Basic_SArgument_T<CORBA::Char, \ - ACE_InputCDR::to_char, \ - ACE_OutputCDR::from_char> -#pragma instantiate TAO::Out_Special_Basic_SArgument_T<CORBA::Char, \ - ACE_InputCDR::to_char, \ - ACE_OutputCDR::from_char> -#pragma instantiate TAO::Ret_Special_Basic_SArgument_T<CORBA::Char, \ - ACE_InputCDR::to_char, \ - ACE_OutputCDR::from_char> - -#pragma instantiate TAO::In_Special_Basic_SArgument_T<CORBA::WChar, \ - ACE_InputCDR::to_wchar, \ - ACE_OutputCDR::from_wchar -#pragma instantiate TAO::Inout_Special_Basic_SArgument_T<CORBA::WChar, \ - ACE_InputCDR::to_wchar, \ - ACE_OutputCDR::from_wchar> -#pragma instantiate TAO::Out_Special_Basic_SArgument_T<CORBA::WChar, \ - ACE_InputCDR::to_wchar, \ - ACE_OutputCDR::from_wchar> -#pragma instantiate TAO::Ret_Special_Basic_SArgument_T<CORBA::WChar, \ - ACE_InputCDR::to_wchar, \ - ACE_OutputCDR::from_wchar> - -#pragma instantiate TAO::In_Special_Basic_SArgument_T<CORBA::Octet, \ - ACE_InputCDR::to_octet, \ - ACE_OutputCDR::from_octet -#pragma instantiate TAO::Inout_Special_Basic_SArgument_T<CORBA::Octet, \ - ACE_InputCDR::to_octet, \ - ACE_OutputCDR::from_octet> -#pragma instantiate TAO::Out_Special_Basic_SArgument_T<CORBA::Octet, \ - ACE_InputCDR::to_octet, \ - ACE_OutputCDR::from_octet> -#pragma instantiate TAO::Ret_Special_Basic_SArgument_T<CORBA::Octet, \ - ACE_InputCDR::to_octet, \ - ACE_OutputCDR::from_octet> - -#pragma instantiate TAO::In_Special_Basic_SArgument_T<CORBA::Boolean, \ - ACE_InputCDR::to_boolean, \ - ACE_OutputCDR::from_boolean -#pragma instantiate TAO::Inout_Special_Basic_SArgument_T<CORBA::Boolean, \ - ACE_InputCDR::to_boolean, \ - ACE_OutputCDR::from_boolean> -#pragma instantiate TAO::Out_Special_Basic_SArgument_T<CORBA::Boolean, \ - ACE_InputCDR::to_boolean, \ - ACE_OutputCDR::from_boolean> -#pragma instantiate TAO::Ret_Special_Basic_SArgument_T<CORBA::Boolean, \ - ACE_InputCDR::to_boolean, \ - ACE_OutputCDR::from_boolean> - -#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ diff --git a/TAO/tao/PortableServer/UB_String_SArguments.cpp b/TAO/tao/PortableServer/UB_String_SArguments.cpp deleted file mode 100644 index ccc5b449a7e..00000000000 --- a/TAO/tao/PortableServer/UB_String_SArguments.cpp +++ /dev/null @@ -1,69 +0,0 @@ -// $Id$ - -#include "UB_String_SArguments.h" - -ACE_RCSID (PortableServer, - Special_Basic_SArguments, - "$Id$") - -#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) - -template class TAO::SArg_Traits<CORBA::String>; -template class TAO::SArg_Traits<CORBA::WString>; - -template class TAO::UB_String_SArg_Traits_T<CORBA::Char, - CORBA::String_var, - CORBA::String_out>; -template class TAO::UB_String_SArg_Traits_T<CORBA::WChar, - CORBA::WString_var, - CORBA::WString_out>; - -template class TAO::In_UB_String_SArgument_T<CORBA::Char, - CORBA::String_var>; -template class TAO::Inout_UB_String_SArgument_T<CORBA::Char, - CORBA::String_var>; -template class TAO::Out_UB_String_SArgument_T<CORBA::Char, - CORBA::String_var>; -template class TAO::Ret_UB_String_SArgument_T<CORBA::Char, - CORBA::String_var>; - -template class TAO::In_UB_String_SArgument_T<CORBA::WChar, - CORBA::WString_var>; -template class TAO::Inout_UB_String_SArgument_T<CORBA::WChar, - CORBA::WString_var>; -template class TAO::Out_UB_String_SArgument_T<CORBA::WChar, - CORBA::WString_var>; -template class TAO::Ret_UB_String_SArgument_T<CORBA::WChar, - CORBA::WString_var>; - -#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) - -#pragma instantiate TAO::SArg_Traits<CORBA::String> -#pragma instantiate TAO::SArg_Traits<CORBA::WString> - -#pragma instantiate TAO::UB_String_SArg_Traits_T<CORBA::Char, \ - CORBA::String_var, \ - CORBA::String_out> -#pragma instantiate TAO::UB_String_SArg_Traits_T<CORBA::WChar, \ - CORBA::WString_var, \ - CORBA::WString_out> - -#pragma instantiate TAO::In_UB_String_SArgument_T<CORBA::Char, \ - CORBA::String_var> -#pragma instantiate TAO::Inout_UB_String_SArgument_T<CORBA::Char, \ - CORBA::String_var> -#pragma instantiate TAO::Out_UB_String_SArgument_T<CORBA::Char, \ - CORBA::String_var> -#pragma instantiate TAO::Ret_UB_String_SArgument_T<CORBA::Char, \ - CORBA::String_var> - -#pragma instantiate TAO::In_UB_String_SArgument_T<CORBA::WChar, \ - CORBA::WString_var> -#pragma instantiate TAO::Inout_UB_String_SArgument_T<CORBA::WChar, \ - CORBA::WString_var> -#pragma instantiate TAO::Out_UB_String_SArgument_T<CORBA::WChar, \ - CORBA::WString_var> -#pragma instantiate TAO::Ret_UB_String_SArgument_T<CORBA::WChar, \ - CORBA::WString_var> - -#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ diff --git a/TAO/tao/PortableServer/Upcall_Wrapper.cpp b/TAO/tao/PortableServer/Upcall_Wrapper.cpp index cd966ba682f..280e294b581 100644 --- a/TAO/tao/PortableServer/Upcall_Wrapper.cpp +++ b/TAO/tao/PortableServer/Upcall_Wrapper.cpp @@ -5,8 +5,8 @@ #if TAO_HAS_INTERCEPTORS == 1 # include "PICurrent_Guard.h" -# include "ServerRequestInfo.h" # include "tao/ServerRequestInterceptor_Adapter.h" +# include "tao/PortableInterceptorC.h" # include "tao/ORB_Core.h" #endif /* TAO_HAS_INTERCEPTORS == 1 */ @@ -48,13 +48,6 @@ TAO::Upcall_Wrapper::upcall (TAO_ServerRequest & server_request, #if TAO_HAS_INTERCEPTORS == 1 - TAO::ServerRequestInfo request_info (server_request, - args, - nargs, - servant_upcall, - exceptions, - nexceptions); - TAO::ServerRequestInterceptor_Adapter *interceptor_adapter = server_request.orb_core ()->serverrequestinterceptor_adapter (); @@ -68,7 +61,11 @@ TAO::Upcall_Wrapper::upcall (TAO_ServerRequest & server_request, { // Invoke intermediate server side interception points. interceptor_adapter->receive_request (server_request, - &request_info + args, + nargs, + servant_upcall, + exceptions, + nexceptions ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; } @@ -90,7 +87,7 @@ TAO::Upcall_Wrapper::upcall (TAO_ServerRequest & server_request, if (interceptor_adapter == 0) { - request_info.reply_status (PortableInterceptor::SUCCESSFUL); + server_request.reply_status (PortableInterceptor::SUCCESSFUL); } else { @@ -108,9 +105,13 @@ TAO::Upcall_Wrapper::upcall (TAO_ServerRequest & server_request, if (CORBA::is_nil (forward_to_after.in ())) { // No location forward by interceptors and successful upcall. - request_info.reply_status (PortableInterceptor::SUCCESSFUL); + server_request.reply_status (PortableInterceptor::SUCCESSFUL); interceptor_adapter->send_reply (server_request, - &request_info + args, + nargs, + servant_upcall, + exceptions, + nexceptions ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; } @@ -125,18 +126,21 @@ TAO::Upcall_Wrapper::upcall (TAO_ServerRequest & server_request, PortableInterceptor::ReplyStatus status = PortableInterceptor::SYSTEM_EXCEPTION; - request_info.exception (&ACE_ANY_EXCEPTION); + server_request.caught_exception (&ACE_ANY_EXCEPTION); if (interceptor_adapter != 0) { interceptor_adapter->send_exception (server_request, - &request_info + args, + nargs, + servant_upcall, + exceptions, + nexceptions ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; status = - request_info.reply_status (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; + server_request.reply_status (); } if (status == PortableInterceptor::SYSTEM_EXCEPTION diff --git a/TAO/tao/Profile.h b/TAO/tao/Profile.h index 89c39d531ca..6821ee1a5f6 100644 --- a/TAO/tao/Profile.h +++ b/TAO/tao/Profile.h @@ -57,9 +57,6 @@ public: TAO_ORB_Core *orb_core, const TAO_GIOP_Message_Version &version); - /// If you have a virtual method you need a virtual dtor. - virtual ~TAO_Profile (void); - /** * @name Non virtual methods for the profile classes. */ @@ -111,7 +108,6 @@ public: TAO::ObjectKey *_key (void) const; //@} - /** * @name Template methods that needs to be implemented by the * concrete classes. Some of the methods may be overridden only @@ -236,6 +232,8 @@ public: //@} protected: + /// If you have a virtual method you need a virtual dtor. + virtual ~TAO_Profile (void); /** * @name Protected template methods. diff --git a/TAO/tao/Protocols_Hooks.cpp b/TAO/tao/Protocols_Hooks.cpp index fe6aee07028..604e01bf55e 100644 --- a/TAO/tao/Protocols_Hooks.cpp +++ b/TAO/tao/Protocols_Hooks.cpp @@ -3,8 +3,8 @@ #include "Protocols_Hooks.h" #include "ace/Dynamic_Service.h" -ACE_RCSID (tao, - Protocols_Hooks, +ACE_RCSID (tao, + Protocols_Hooks, "$Id$") TAO_IIOP_Protocol_Properties::TAO_IIOP_Protocol_Properties (void) @@ -16,13 +16,13 @@ TAO_IIOP_Protocol_Properties::TAO_IIOP_Protocol_Properties (void) enable_network_priority_ (0) { } - + TAO_UIOP_Protocol_Properties::TAO_UIOP_Protocol_Properties (void) : send_buffer_size_ (0), recv_buffer_size_ (0) { } - + TAO_SHMIOP_Protocol_Properties::TAO_SHMIOP_Protocol_Properties (void) : send_buffer_size_ (0), recv_buffer_size_ (0), @@ -34,12 +34,12 @@ TAO_SHMIOP_Protocol_Properties::TAO_SHMIOP_Protocol_Properties (void) mmap_lockname_ () { } - + TAO_DIOP_Protocol_Properties::TAO_DIOP_Protocol_Properties (void) : enable_network_priority_ (0) { } - + TAO_SCIOP_Protocol_Properties::TAO_SCIOP_Protocol_Properties (void) : send_buffer_size_ (0), recv_buffer_size_ (0), @@ -49,18 +49,9 @@ TAO_SCIOP_Protocol_Properties::TAO_SCIOP_Protocol_Properties (void) enable_network_priority_ (0) { } - + /// destructor TAO_Protocols_Hooks::~TAO_Protocols_Hooks (void) { } -#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) - -template class ACE_Dynamic_Service<TAO_Protocols_Hooks>; - -#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) - -#pragma instantiate ACE_Dynamic_Service<TAO_Protocols_Hooks> - -#endif diff --git a/TAO/tao/RTScheduling/RTScheduler.pidl b/TAO/tao/RTScheduling/RTScheduler.pidl index da848594c25..72551c8785b 100644 --- a/TAO/tao/RTScheduling/RTScheduler.pidl +++ b/TAO/tao/RTScheduling/RTScheduler.pidl @@ -28,8 +28,10 @@ #include "tao/RTCORBA/RTCORBA_include.pidl" #include "tao/PortableServer/PortableServer_include.pidl" +#include "tao/PI/ClientRequestInfo.pidl" +#include "tao/PI_Server/ServerRequestInfo.pidl" #include "tao/PortableInterceptor.pidl" -#include "tao/PIForwardRequest.pidl" +#include "tao/PI/PIForwardRequest.pidl" module CORBA { diff --git a/TAO/tao/RTScheduling/RTSchedulerC.h b/TAO/tao/RTScheduling/RTSchedulerC.h index a0324e928fb..7465c8651a4 100644 --- a/TAO/tao/RTScheduling/RTSchedulerC.h +++ b/TAO/tao/RTScheduling/RTSchedulerC.h @@ -52,8 +52,10 @@ #include "tao/RTCORBA/RTCORBA_includeC.h" #include "tao/PortableServer/PortableServer_includeC.h" +#include "tao/PI/ClientRequestInfoC.h" #include "tao/PortableInterceptorC.h" -#include "tao/PIForwardRequestC.h" +#include "tao/PI/PIForwardRequestC.h" +#include "tao/PI_Server/ServerRequestInfoC.h" #ifndef TAO_RTSCHEDULER_SAFE_INCLUDE #error "You should not include RTSchedulerC.h directly, use RTScheduler.h" @@ -92,22 +94,22 @@ namespace CORBA namespace RTScheduling { - + // TAO_IDL - Generated from // be\be_interface.cpp:598 #if !defined (_RTSCHEDULING_THREADACTION__VAR_OUT_CH_) #define _RTSCHEDULING_THREADACTION__VAR_OUT_CH_ - + class ThreadAction; typedef ThreadAction *ThreadAction_ptr; - + typedef TAO_Objref_Var_T< ThreadAction > ThreadAction_var; - + typedef TAO_Objref_Out_T< ThreadAction @@ -115,45 +117,45 @@ namespace RTScheduling ThreadAction_out; #endif /* end #if !defined */ - + // TAO_IDL - Generated from // be\be_visitor_interface/interface_ch.cpp:54 #if !defined (_RTSCHEDULING_THREADACTION_CH_) #define _RTSCHEDULING_THREADACTION_CH_ - + class TAO_RTScheduler_Export ThreadAction : public virtual CORBA::Object { public: typedef ThreadAction_ptr _ptr_type; typedef ThreadAction_var _var_type; - + // The static operations. static ThreadAction_ptr _duplicate (ThreadAction_ptr obj); - + static void _tao_release (ThreadAction_ptr obj); - + static ThreadAction_ptr _narrow ( CORBA::Object_ptr obj ACE_ENV_ARG_DECL_WITH_DEFAULTS ); - + static ThreadAction_ptr _unchecked_narrow ( CORBA::Object_ptr obj ACE_ENV_ARG_DECL_WITH_DEFAULTS ); - + static ThreadAction_ptr _nil (void) { return static_cast<ThreadAction_ptr> (0); } - - - + + + // TAO_IDL - Generated from // be\be_visitor_operation/operation_ch.cpp:46 - + virtual void _cxx_do ( ::CORBA::VoidData data ACE_ENV_ARG_DECL_WITH_DEFAULTS @@ -161,38 +163,38 @@ namespace RTScheduling ACE_THROW_SPEC (( CORBA::SystemException )) = 0; - + // TAO_IDL - Generated from // be\be_visitor_interface/interface_ch.cpp:210 - + virtual CORBA::Boolean _is_a ( const char *type_id ACE_ENV_ARG_DECL_WITH_DEFAULTS ); - + virtual const char* _interface_repository_id (void) const; virtual CORBA::Boolean marshal (TAO_OutputCDR &cdr); - + protected: // Abstract or local interface only. ThreadAction (void); - + virtual ~ThreadAction (void); - + private: // Private and unimplemented for concrete interfaces. ThreadAction (const ThreadAction &); - + void operator= (const ThreadAction &); }; #endif /* end #if !defined */ - + // TAO_IDL - Generated from // be\be_visitor_typecode/typecode_decl.cpp:44 - + extern TAO_RTScheduler_Export ::CORBA::TypeCode_ptr const _tc_ThreadAction; - + // TAO_IDL - Generated from // be\be_interface.cpp:598 diff --git a/TAO/tao/ServerRequestInterceptor_Adapter.h b/TAO/tao/ServerRequestInterceptor_Adapter.h index eb85bd455b6..3b065394909 100644 --- a/TAO/tao/ServerRequestInterceptor_Adapter.h +++ b/TAO/tao/ServerRequestInterceptor_Adapter.h @@ -31,6 +31,8 @@ namespace PortableInterceptor { class ServerRequestInterceptor; typedef ServerRequestInterceptor *ServerRequestInterceptor_ptr; + + typedef CORBA::Short ReplyStatus; } class TAO_ServerRequest; @@ -38,6 +40,7 @@ class TAO_ServerRequest; namespace TAO { class ServerRequestInfo; + class Argument; /** * @class ServerRequestInterceptor_Adapter @@ -61,7 +64,11 @@ namespace TAO /// @@ Will go away once Bug 1369 is fixed virtual void tao_ft_interception_point ( TAO_ServerRequest &server_request, - TAO::ServerRequestInfo *ri , + TAO::Argument * const args[], + size_t nargs, + void * servant_upcall, + CORBA::TypeCode_ptr const * exceptions, + size_t nexceptions, CORBA::OctetSeq_out oc ACE_ENV_ARG_DECL) = 0; #endif /*TAO_HAS_EXTENDED_FT_INTERCEPTORS*/ @@ -75,34 +82,54 @@ namespace TAO /// fixed once Bug 1369 is completely done. virtual void receive_request_service_contexts ( TAO_ServerRequest &server_request, - TAO::ServerRequestInfo *ri + TAO::Argument * const args[], + size_t nargs, + void * servant_upcall, + CORBA::TypeCode_ptr const * exceptions, + size_t nexceptions ACE_ENV_ARG_DECL) = 0; /// This method an "intermediate" server side interception point. virtual void receive_request ( TAO_ServerRequest &server_request, - TAO::ServerRequestInfo *ri + TAO::Argument * const args[], + size_t nargs, + void * servant_upcall, + CORBA::TypeCode_ptr const * exceptions, + size_t nexceptions ACE_ENV_ARG_DECL) = 0; /// This method implements one of the "ending" server side /// interception points. virtual void send_reply ( TAO_ServerRequest &server_request, - TAO::ServerRequestInfo *ri + TAO::Argument * const args[], + size_t nargs, + void * servant_upcall, + CORBA::TypeCode_ptr const * exceptions, + size_t nexceptions ACE_ENV_ARG_DECL) = 0; /// This method implements one of the "ending" server side /// interception points. virtual void send_exception ( TAO_ServerRequest &server_request, - TAO::ServerRequestInfo * ri + TAO::Argument * const args[], + size_t nargs, + void * servant_upcall, + CORBA::TypeCode_ptr const * exceptions, + size_t nexceptions ACE_ENV_ARG_DECL) = 0; /// This method implements one of the "ending" server side /// interception points. virtual void send_other ( TAO_ServerRequest &server_request, - TAO::ServerRequestInfo * ri + TAO::Argument * const args[], + size_t nargs, + void * servant_upcall, + CORBA::TypeCode_ptr const * exceptions, + size_t nexceptions ACE_ENV_ARG_DECL) = 0; //@} diff --git a/TAO/tao/Synch_Invocation.cpp b/TAO/tao/Synch_Invocation.cpp index e5891e00cc6..c0964e0c51c 100644 --- a/TAO/tao/Synch_Invocation.cpp +++ b/TAO/tao/Synch_Invocation.cpp @@ -84,11 +84,11 @@ namespace TAO this->write_header (tspec, cdr ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (s); + ACE_TRY_CHECK; this->marshal_data (cdr ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (s); + ACE_TRY_CHECK; // Register a reply dispatcher for this invocation. Use the diff --git a/TAO/tao/TAO_Server_Request.cpp b/TAO/tao/TAO_Server_Request.cpp index f525588e9a7..b95b1b41038 100644 --- a/TAO/tao/TAO_Server_Request.cpp +++ b/TAO/tao/TAO_Server_Request.cpp @@ -12,6 +12,10 @@ #include "CDR.h" #include "SystemException.h" +#if TAO_HAS_INTERCEPTORS == 1 +#include "PortableInterceptorC.h" +#endif + #if !defined (__ACE_INLINE__) # include "TAO_Server_Request.i" #endif /* ! __ACE_INLINE__ */ @@ -71,6 +75,8 @@ TAO_ServerRequest::TAO_ServerRequest (TAO_Pluggable_Messaging *mesg_base, , rs_pi_current_ () , pi_current_copy_callback_ () , result_seq_ (0) + , caught_exception_ (0) + , reply_status_ (-1) #endif /* TAO_HAS_INTERCEPTORS == 1 */ { ACE_FUNCTION_TIMEPROBE (TAO_SERVER_REQUEST_START); @@ -111,6 +117,8 @@ TAO_ServerRequest::TAO_ServerRequest (TAO_Pluggable_Messaging *mesg_base, , interceptor_count_ (0) , rs_pi_current_ () , result_seq_ (0) + , caught_exception_ (0) + , reply_status_ (-1) #endif /* TAO_HAS_INTERCEPTORS == 1 */ { this->profile_.object_key (object_key); @@ -144,6 +152,8 @@ TAO_ServerRequest::TAO_ServerRequest (TAO_ORB_Core * orb_core, , interceptor_count_ (0) , rs_pi_current_ () , result_seq_ (0) + , caught_exception_ (0) + , reply_status_ (-1) #endif /* TAO_HAS_INTERCEPTORS == 1 */ { // Have to use a const_cast<>. *sigh* @@ -477,4 +487,16 @@ TAO_ServerRequest::send_cached_reply (CORBA::OctetSeq &s) ACE_TEXT ("could not send cached reply\n"))); } } + +void +TAO_ServerRequest::caught_exception (CORBA::Exception *exception) +{ + if (CORBA::SystemException::_downcast (exception) != 0) + this->reply_status_ = PortableInterceptor::SYSTEM_EXCEPTION; + else if (CORBA::UserException::_downcast (exception) != 0) + this->reply_status_ = PortableInterceptor::USER_EXCEPTION; + + this->caught_exception_ = exception; +} + #endif /*TAO_HAS_INTERCEPTORS*/ diff --git a/TAO/tao/TAO_Server_Request.h b/TAO/tao/TAO_Server_Request.h index 018740d1f72..5cf6c3b8758 100644 --- a/TAO/tao/TAO_Server_Request.h +++ b/TAO/tao/TAO_Server_Request.h @@ -43,6 +43,8 @@ namespace CORBA { class ORB; typedef ORB *ORB_ptr; + + class Exception; } class TAO_Operation_Details; @@ -97,7 +99,7 @@ public: CORBA::Object_ptr target); /// Destructor. - virtual ~TAO_ServerRequest (void); + ~TAO_ServerRequest (void); /** * @name Request attributes. @@ -240,6 +242,17 @@ public: /// Return a reference to the PICurrent copy callback object. TAO::PICurrent_Copy_Callback & pi_current_copy_callback (void); + + CORBA::Exception *caught_exception (void); + + void caught_exception (CORBA::Exception *exception); + + /// Set the status of the received reply. + void reply_status (PortableInterceptor::ReplyStatus s); + + /// Get the status of the received reply. + PortableInterceptor::ReplyStatus reply_status (void); + #endif /* TAO_HAS_INTERCEPTORS == 1 */ private: @@ -278,7 +291,6 @@ private: /// Did we get passed to a CORBA::ServerRequest? CORBA::Boolean is_dsi_; - // TAO_GIOP_ReplyStatusType exception_type_; /// Exception type (will be NO_EXCEPTION in the majority of the cases). CORBA::ULong exception_type_; @@ -327,6 +339,12 @@ private: /// Used by the FTORB CORBA::OctetSeq_var result_seq_; + + /// Pointer to the caught exception. + CORBA::Exception * caught_exception_; + + /// Reply status for the current request. + PortableInterceptor::ReplyStatus reply_status_; #endif /* TAO_HAS_INTERCEPTORS == 1 */ }; diff --git a/TAO/tao/TAO_Server_Request.i b/TAO/tao/TAO_Server_Request.i index aa1fd412d02..1f9c0007cc9 100644 --- a/TAO/tao/TAO_Server_Request.i +++ b/TAO/tao/TAO_Server_Request.i @@ -226,4 +226,23 @@ TAO_ServerRequest::result_seq (CORBA::OctetSeq &ocs) { this->result_seq_ = ocs; } + +ACE_INLINE CORBA::Exception * +TAO_ServerRequest::caught_exception (void) +{ + return this->caught_exception_; +} + +ACE_INLINE void +TAO_ServerRequest::reply_status (PortableInterceptor::ReplyStatus s) +{ + this->reply_status_ = s; +} + +ACE_INLINE PortableInterceptor::ReplyStatus +TAO_ServerRequest::reply_status (void) +{ + return this->reply_status_; +} + #endif /* TAO_HAS_INTERCEPTORS == 1 */ diff --git a/TAO/tao/Transport.h b/TAO/tao/Transport.h index e9739b312d6..aaabf5aebdd 100644 --- a/TAO/tao/Transport.h +++ b/TAO/tao/Transport.h @@ -1025,21 +1025,6 @@ private: ACE_Message_Block* partial_message_; }; -/** - * @class TAO_Transport_Refcount_Guard - * - * @brief Helper class that increments the refcount on construction - * and decrements the refcount on destruction. - */ -class TAO_Export TAO_Transport_Refcount_Guard -{ -public: - TAO_Transport_Refcount_Guard (TAO_Transport *); - ~TAO_Transport_Refcount_Guard (void); -private: - TAO_Transport *tr_; -}; - #if defined (__ACE_INLINE__) # include "Transport.inl" #endif /* __ACE_INLINE__ */ diff --git a/TAO/tao/Transport.inl b/TAO/tao/Transport.inl index 843d863d658..7eeacf34ca7 100644 --- a/TAO/tao/Transport.inl +++ b/TAO/tao/Transport.inl @@ -174,17 +174,3 @@ TAO_Transport::connection_handler (void) return this->connection_handler_i(); } -/*****************************************************/ - -ACE_INLINE -TAO_Transport_Refcount_Guard::TAO_Transport_Refcount_Guard (TAO_Transport *t) - : tr_ (t) -{ - this->tr_->add_reference (); -} - -ACE_INLINE -TAO_Transport_Refcount_Guard::~TAO_Transport_Refcount_Guard (void) -{ - this->tr_->remove_reference (); -} diff --git a/TAO/tao/tao.mpc b/TAO/tao/tao.mpc index e388179e20b..c2de64a679b 100644 --- a/TAO/tao/tao.mpc +++ b/TAO/tao/tao.mpc @@ -40,9 +40,6 @@ project(TAO) : acelib, core, tao_output, taodefaults, pidl, extra_core { CharSeqC.cpp Cleanup_Func_Registry.cpp Client_Strategy_Factory.cpp - ClientRequestInfo.cpp - ClientRequestInfoA.cpp - ClientRequestInfoC.cpp ClientRequestInterceptor_Adapter.cpp Codeset_Manager.cpp Codeset_Translator_Factory.cpp @@ -195,8 +192,6 @@ project(TAO) : acelib, core, tao_output, taodefaults, pidl, extra_core { PICurrent_Copy_Callback.cpp PICurrent_Impl.cpp PICurrent_Loader.cpp - PIForwardRequestA.cpp - PIForwardRequestC.cpp Pluggable_Messaging.cpp Pluggable_Messaging_Utils.cpp Policy_Current.cpp @@ -209,6 +204,7 @@ project(TAO) : acelib, core, tao_output, taodefaults, pidl, extra_core { PolicyA.cpp PolicyC.cpp PolicyFactory_Registry_Adapter.cpp + PolicyFactory_Registry_Factory.cpp PollableC.cpp PortableInterceptorC.cpp Principal.cpp @@ -224,16 +220,12 @@ project(TAO) : acelib, core, tao_output, taodefaults, pidl, extra_core { Remote_Object_Proxy_Broker.cpp Reply_Dispatcher.cpp Request_Dispatcher.cpp - RequestInfoA.cpp - RequestInfoC.cpp RequestInfo_Util.cpp Resource_Factory.cpp Resume_Handle.cpp Sequence.cpp Sequence_TypeCode_Static.cpp Server_Strategy_Factory.cpp - ServerRequestInfoA.cpp - ServerRequestInfoC.cpp ServerRequestInterceptor_Adapter.cpp Service_Callbacks.cpp Service_Context.cpp @@ -359,9 +351,6 @@ project(TAO) : acelib, core, tao_output, taodefaults, pidl, extra_core { CharSeqC.h CharSeqS.h Cleanup_Func_Registry.h - ClientRequestInfo.h - ClientRequestInfoC.h - ClientRequestInfoS.h ClientRequestInterceptor_Adapter.h Client_Strategy_Factory.h Codeset_Manager.h @@ -379,7 +368,6 @@ project(TAO) : acelib, core, tao_output, taodefaults, pidl, extra_core { Connect_Strategy.h CONV_FRAMEC.h CONV_FRAMES.h - CONV_FRAMES_T.h corbafwd.h corba.h CORBALOC_Parser.h @@ -436,7 +424,6 @@ project(TAO) : acelib, core, tao_output, taodefaults, pidl, extra_core { GIOP_Message_State.h GIOP_Message_Version.h GIOPS.h - GIOPS_T.h GIOP_Utils.h GUIResource_Factory.h IFR_Client_Adapter.h @@ -534,8 +521,6 @@ project(TAO) : acelib, core, tao_output, taodefaults, pidl, extra_core { PICurrentS.h PICurrent_Impl.h PICurrent_Loader.h - PIForwardRequestC.h - PIForwardRequestS.h PI_ForwardC.h Pluggable_Messaging.h Pluggable_Messaging_Utils.h @@ -571,8 +556,6 @@ project(TAO) : acelib, core, tao_output, taodefaults, pidl, extra_core { Reply_Dispatcher.h Request_Dispatcher.h RequestInfo_Util.h - RequestInfoC.h - RequestInfoS.h Resource_Factory.h Resume_Handle.h Seq_Out_T.h @@ -582,8 +565,6 @@ project(TAO) : acelib, core, tao_output, taodefaults, pidl, extra_core { Sequence_TypeCode_Static.h Seq_Var_T.h Server_Strategy_Factory.h - ServerRequestInfoC.h - ServerRequestInfoS.h Service_Callbacks.h Service_Context.h Services_Activate.h diff --git a/TAO/tests/Portable_Interceptors/ForwardRequest/PI_ForwardRequest.mpc b/TAO/tests/Portable_Interceptors/ForwardRequest/PI_ForwardRequest.mpc index 37b911f8198..ba69a8f271c 100644 --- a/TAO/tests/Portable_Interceptors/ForwardRequest/PI_ForwardRequest.mpc +++ b/TAO/tests/Portable_Interceptors/ForwardRequest/PI_ForwardRequest.mpc @@ -12,7 +12,7 @@ project(*Server): taoserver, valuetype, pi, pi_server, interceptors { } } -project(*Client): taoclient, valuetype, pi, pi_server, interceptors { +project(*Client): taoclient, valuetype, pi, interceptors { idlflags += -DCORBA3 Source_Files { diff --git a/TAO/tests/Portable_Interceptors/ForwardRequest/Server_Request_Interceptor.h b/TAO/tests/Portable_Interceptors/ForwardRequest/Server_Request_Interceptor.h index 003883dfd77..382097c50a0 100644 --- a/TAO/tests/Portable_Interceptors/ForwardRequest/Server_Request_Interceptor.h +++ b/TAO/tests/Portable_Interceptors/ForwardRequest/Server_Request_Interceptor.h @@ -25,6 +25,7 @@ #include "testC.h" #include "tao/LocalObject.h" #include "tao/PortableInterceptorC.h" +#include "tao/PI_Server/PI_Server.h" #if defined(_MSC_VER) #pragma warning(push) |