diff options
Diffstat (limited to 'TAO/tao/Exception.cpp')
-rw-r--r-- | TAO/tao/Exception.cpp | 32 |
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 |