summaryrefslogtreecommitdiff
path: root/TAO/tao/Exception.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/tao/Exception.cpp')
-rw-r--r--TAO/tao/Exception.cpp32
1 files changed, 32 insertions, 0 deletions
diff --git a/TAO/tao/Exception.cpp b/TAO/tao/Exception.cpp
index 3ff45849531..94ee1cbdd66 100644
--- a/TAO/tao/Exception.cpp
+++ b/TAO/tao/Exception.cpp
@@ -203,6 +203,18 @@ CORBA::UserException::_downcast (CORBA::Exception* exception)
return 0;
}
+const CORBA::UserException*
+CORBA::UserException::_downcast (const CORBA::Exception *exception)
+{
+ if (exception->_is_a ("IDL:omg.org/CORBA/UserException:1.0"))
+ {
+ return ACE_dynamic_cast (const CORBA::UserException *,
+ exception);
+ }
+
+ return 0;
+}
+
ACE_CString
CORBA::UserException::_info (void) const
{
@@ -239,6 +251,14 @@ CORBA::SystemException::SystemException (const char *repository_id,
{
}
+CORBA::SystemException::SystemException (CORBA::ULong code,
+ CORBA::CompletionStatus completed)
+ : minor_ (code),
+ completed_ (completed)
+{
+}
+
+
CORBA::SystemException::SystemException (const CORBA::SystemException &src)
: CORBA::Exception (src),
minor_ (src.minor_),
@@ -283,6 +303,18 @@ CORBA::SystemException::_downcast (CORBA::Exception* exception)
return 0;
}
+const CORBA::SystemException*
+CORBA::SystemException::_downcast (const CORBA::Exception *exception)
+{
+ if (exception->_is_a ("IDL:omg.org/CORBA/SystemException:1.0"))
+ {
+ return ACE_dynamic_cast (const CORBA::SystemException *,
+ exception);
+ }
+
+ return 0;
+}
+
void
CORBA::SystemException::_tao_encode (TAO_OutputCDR &cdr
ACE_ENV_ARG_DECL) const