summaryrefslogtreecommitdiff
path: root/TAO/tao/TAO_Server_Request.cpp
diff options
context:
space:
mode:
authorJohnny Willemsen <jwillemsen@remedy.nl>2005-07-12 10:08:02 +0000
committerJohnny Willemsen <jwillemsen@remedy.nl>2005-07-12 10:08:02 +0000
commit93ba2f5f68e5e15edc17f36d97a791fbe45a7fe0 (patch)
tree83a73a86dc03e3abd9ba197f95e6a9a6385d192e /TAO/tao/TAO_Server_Request.cpp
parent44ddcfdb9e69b91fbbd6cad11e9d1bffc75c0196 (diff)
downloadATCD-93ba2f5f68e5e15edc17f36d97a791fbe45a7fe0.tar.gz
ChangeLogTag: Tue Jul 12 10:05:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl>
Diffstat (limited to 'TAO/tao/TAO_Server_Request.cpp')
-rw-r--r--TAO/tao/TAO_Server_Request.cpp22
1 files changed, 22 insertions, 0 deletions
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*/