summaryrefslogtreecommitdiff
path: root/TAO
diff options
context:
space:
mode:
Diffstat (limited to 'TAO')
-rw-r--r--TAO/ChangeLog190
-rw-r--r--TAO/tao/CONV_FRAME.pidl2
-rw-r--r--TAO/tao/CONV_FRAMES_T.h58
-rw-r--r--TAO/tao/ClientRequestInterceptor_Adapter.h19
-rw-r--r--TAO/tao/Collocation_Resolver.cpp9
-rw-r--r--TAO/tao/GIOP.pidl2
-rw-r--r--TAO/tao/GIOPS_T.h58
-rw-r--r--TAO/tao/GIOP_Message_Generator_Parser_12.cpp2
-rw-r--r--TAO/tao/IIOP_Profile.h6
-rw-r--r--TAO/tao/Invocation_Base.cpp68
-rw-r--r--TAO/tao/Invocation_Base.h22
-rw-r--r--TAO/tao/Invocation_Base.inl14
-rw-r--r--TAO/tao/Makefile.am5
-rw-r--r--TAO/tao/Messaging/Messaging.pidl1
-rw-r--r--TAO/tao/Messaging/MessagingC.h1
-rw-r--r--TAO/tao/Messaging/MessagingS.cpp2
-rw-r--r--TAO/tao/Messaging/MessagingS.h75
-rw-r--r--TAO/tao/Messaging/Messaging_No_Impl.pidl2
-rw-r--r--TAO/tao/Messaging/Messaging_No_ImplC.h1
-rw-r--r--TAO/tao/ORB_Core.h1
-rw-r--r--TAO/tao/PI/ClientRequestInfo.cpp (renamed from TAO/tao/ClientRequestInfo.cpp)104
-rw-r--r--TAO/tao/PI/ClientRequestInfo.h (renamed from TAO/tao/ClientRequestInfo.h)38
-rw-r--r--TAO/tao/PI/ClientRequestInfo.pidl (renamed from TAO/tao/ClientRequestInfo.pidl)2
-rw-r--r--TAO/tao/PI/ClientRequestInfoA.cpp (renamed from TAO/tao/ClientRequestInfoA.cpp)0
-rw-r--r--TAO/tao/PI/ClientRequestInfoC.cpp (renamed from TAO/tao/ClientRequestInfoC.cpp)0
-rw-r--r--TAO/tao/PI/ClientRequestInfoC.h (renamed from TAO/tao/ClientRequestInfoC.h)18
-rw-r--r--TAO/tao/PI/ClientRequestInfoS.h (renamed from TAO/tao/ClientRequestInfoS.h)0
-rw-r--r--TAO/tao/PI/ClientRequestInterceptor.pidl2
-rw-r--r--TAO/tao/PI/ClientRequestInterceptorC.h52
-rw-r--r--TAO/tao/PI/ClientRequestInterceptor_Adapter_Impl.cpp82
-rw-r--r--TAO/tao/PI/ClientRequestInterceptor_Adapter_Impl.h16
-rw-r--r--TAO/tao/PI/ORBInitInfoA.cpp2
-rw-r--r--TAO/tao/PI/ORBInitInfoC.cpp26
-rw-r--r--TAO/tao/PI/ORBInitializerC.cpp26
-rw-r--r--TAO/tao/PI/PI.h1
-rw-r--r--TAO/tao/PI/PIForwardRequest.pidl (renamed from TAO/tao/PIForwardRequest.pidl)0
-rw-r--r--TAO/tao/PI/PIForwardRequestA.cpp (renamed from TAO/tao/PIForwardRequestA.cpp)0
-rw-r--r--TAO/tao/PI/PIForwardRequestC.cpp (renamed from TAO/tao/PIForwardRequestC.cpp)0
-rw-r--r--TAO/tao/PI/PIForwardRequestC.h (renamed from TAO/tao/PIForwardRequestC.h)20
-rw-r--r--TAO/tao/PI/PIForwardRequestS.h (renamed from TAO/tao/PIForwardRequestS.h)0
-rw-r--r--TAO/tao/PI/RequestInfo.pidl (renamed from TAO/tao/RequestInfo.pidl)0
-rw-r--r--TAO/tao/PI/RequestInfoA.cpp (renamed from TAO/tao/RequestInfoA.cpp)0
-rw-r--r--TAO/tao/PI/RequestInfoC.cpp (renamed from TAO/tao/RequestInfoC.cpp)0
-rw-r--r--TAO/tao/PI/RequestInfoC.h (renamed from TAO/tao/RequestInfoC.h)16
-rw-r--r--TAO/tao/PI/RequestInfoS.h (renamed from TAO/tao/RequestInfoS.h)0
-rw-r--r--TAO/tao/PI_Server/PI_Server.h1
-rw-r--r--TAO/tao/PI_Server/ServerInterceptorAdapter.cpp138
-rw-r--r--TAO/tao/PI_Server/ServerInterceptorAdapter.h68
-rw-r--r--TAO/tao/PI_Server/ServerRequestInfo.cpp (renamed from TAO/tao/PortableServer/ServerRequestInfo.cpp)24
-rw-r--r--TAO/tao/PI_Server/ServerRequestInfo.h (renamed from TAO/tao/PortableServer/ServerRequestInfo.h)21
-rw-r--r--TAO/tao/PI_Server/ServerRequestInfo.inl (renamed from TAO/tao/PortableServer/ServerRequestInfo.inl)25
-rw-r--r--TAO/tao/PI_Server/ServerRequestInfo.pidl (renamed from TAO/tao/ServerRequestInfo.pidl)2
-rw-r--r--TAO/tao/PI_Server/ServerRequestInfoA.cpp (renamed from TAO/tao/ServerRequestInfoA.cpp)0
-rw-r--r--TAO/tao/PI_Server/ServerRequestInfoC.cpp (renamed from TAO/tao/ServerRequestInfoC.cpp)0
-rw-r--r--TAO/tao/PI_Server/ServerRequestInfoC.h (renamed from TAO/tao/ServerRequestInfoC.h)70
-rw-r--r--TAO/tao/PI_Server/ServerRequestInfoS.h (renamed from TAO/tao/ServerRequestInfoS.h)0
-rw-r--r--TAO/tao/PI_Server/ServerRequestInterceptor.pidl2
-rw-r--r--TAO/tao/PI_Server/ServerRequestInterceptorC.h50
-rw-r--r--TAO/tao/PolicyFactory_Registry_Factory.cpp11
-rw-r--r--TAO/tao/PolicyFactory_Registry_Factory.h2
-rw-r--r--TAO/tao/PortableInterceptor.pidl2
-rw-r--r--TAO/tao/PortableInterceptorC.h2
-rw-r--r--TAO/tao/PortableServer/Basic_SArguments.cpp145
-rw-r--r--TAO/tao/PortableServer/Local_Servant_Base.inl26
-rw-r--r--TAO/tao/PortableServer/Object_Adapter.cpp40
-rw-r--r--TAO/tao/PortableServer/Special_Basic_SArguments.cpp167
-rw-r--r--TAO/tao/PortableServer/UB_String_SArguments.cpp69
-rw-r--r--TAO/tao/PortableServer/Upcall_Wrapper.cpp36
-rw-r--r--TAO/tao/Profile.h6
-rw-r--r--TAO/tao/Protocols_Hooks.cpp23
-rw-r--r--TAO/tao/RTScheduling/RTScheduler.pidl4
-rw-r--r--TAO/tao/RTScheduling/RTSchedulerC.h54
-rw-r--r--TAO/tao/ServerRequestInterceptor_Adapter.h39
-rw-r--r--TAO/tao/Synch_Invocation.cpp4
-rw-r--r--TAO/tao/TAO_Server_Request.cpp22
-rw-r--r--TAO/tao/TAO_Server_Request.h22
-rw-r--r--TAO/tao/TAO_Server_Request.i19
-rw-r--r--TAO/tao/Transport.h15
-rw-r--r--TAO/tao/Transport.inl14
-rw-r--r--TAO/tao/tao.mpc21
-rw-r--r--TAO/tests/Portable_Interceptors/ForwardRequest/PI_ForwardRequest.mpc2
-rw-r--r--TAO/tests/Portable_Interceptors/ForwardRequest/Server_Request_Interceptor.h1
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)