#include <Exception.h>
Inheritance diagram for CORBA::Exception:
Public Member Functions | |
Exception (const Exception &src) | |
Copy constructor. | |
virtual | ~Exception (void) |
Destructor. | |
virtual void | _raise (void) const =0 |
virtual const char * | _rep_id (void) const |
Return the repository ID of the Exception. | |
virtual const char * | _name (void) const |
Return the name of the Exception. | |
virtual CORBA::TypeCode_ptr | _tao_type (void) const =0 |
Will be overridden in the concrete derived classes. | |
void | _tao_print_exception (const char *info, FILE *f=stdout) const |
Print the exception to output determined by f. | |
virtual ACE_CString | _info (void) const =0 |
virtual void | _tao_encode (TAO_OutputCDR &cdr) const =0 |
virtual void | _tao_decode (TAO_InputCDR &cdr)=0 |
virtual CORBA::Exception * | _tao_duplicate (void) const =0 |
Deep copy. | |
Static Public Member Functions | |
static Exception * | _downcast (Exception *x) |
static Exception const * | _downcast (Exception const *x) |
static void | _tao_any_destructor (void *) |
Used in the non-copying Any insertion operator. | |
Protected Member Functions | |
Exception (void) | |
Default constructor. | |
Exception & | operator= (const Exception &src) |
Assignment operator. | |
Exception (const char *repository_id, const char *local_name) | |
Construct from a respository id. | |
Private Attributes | |
CORBA::String_var | id_ |
Repository Id. | |
CORBA::String_var | name_ |
Local name. |
CORBA2-specified exception hierarchy. All exceptions have a type (represented by a TypeCode
) and a widely scoped type ID (in the TypeCode
) that are generated by any OMG-IDL compiler and available through the Interface Repository. Think of it as a "globally scoped" name distinguishing each exception.
Definition at line 99 of file Exception.h.
CORBA::Exception::Exception | ( | const Exception & | src | ) |
Copy constructor.
Definition at line 45 of file Exception.cpp.
References ACE_ASSERT, and name_.
00046 : id_ (CORBA::string_dup (src.id_)), 00047 name_ (CORBA::string_dup (src.name_)) 00048 { 00049 ACE_ASSERT (this->id_.in () != 0 && this->name_.in () != 0); 00050 }
CORBA::Exception::~Exception | ( | void | ) | [virtual] |
CORBA::Exception::Exception | ( | void | ) | [protected] |
TAO_BEGIN_VERSIONED_NAMESPACE_DECL CORBA::Exception::Exception | ( | const char * | repository_id, | |
const char * | local_name | |||
) | [protected] |
Construct from a respository id.
Definition at line 37 of file Exception.cpp.
References ACE_ASSERT.
00039 : id_ (CORBA::string_dup (repository_id)), 00040 name_ (CORBA::string_dup (local_name)) 00041 { 00042 ACE_ASSERT (this->id_.in () != 0 && this->name_.in () != 0); 00043 }
ACE_INLINE CORBA::Exception const * CORBA::Exception::_downcast | ( | Exception const * | x | ) | [static] |
Reimplemented in CORBA::PolicyError, CORBA::InvalidPolicies, CORBA::SystemException, CORBA::UserException, and CORBA::WrongTransaction.
Definition at line 14 of file Exception.inl.
TAO_BEGIN_VERSIONED_NAMESPACE_DECL ACE_INLINE CORBA::Exception * CORBA::Exception::_downcast | ( | Exception * | x | ) | [static] |
Reimplemented in CORBA::ORB::InvalidName, CORBA::PolicyError, CORBA::InvalidPolicies, CORBA::SystemException, CORBA::UserException, and CORBA::WrongTransaction.
Definition at line 8 of file Exception.inl.
virtual ACE_CString CORBA::Exception::_info | ( | void | ) | const [pure virtual] |
Returns a string containing information about the exception. This function is not CORBA compliant.
Implemented in CORBA::SystemException, and CORBA::UserException.
const char * CORBA::Exception::_name | ( | void | ) | const [virtual] |
Return the name of the Exception.
Definition at line 85 of file Exception.cpp.
References name_.
Referenced by CORBA::operator<<().
00086 { 00087 return this->name_.in (); 00088 }
virtual void CORBA::Exception::_raise | ( | void | ) | const [pure virtual] |
Implemented in CORBA::ORB::InvalidName, CORBA::PolicyError, CORBA::InvalidPolicies, CORBA::SystemException, CORBA::UserException, and CORBA::WrongTransaction.
Referenced by TAO::Synch_Twoway_Invocation::handle_user_exception().
const char * CORBA::Exception::_rep_id | ( | void | ) | const [virtual] |
Return the repository ID of the Exception.
Definition at line 79 of file Exception.cpp.
References id_.
Referenced by CORBA::UserException::_info(), CORBA::SystemException::_info(), CORBA::Environment::exception_id(), CORBA::Environment::exception_type(), TAO_Operation_Details::has_exception(), operator<<(), CORBA::operator<<(), and CORBA::Environment::print_exception().
00080 { 00081 return this->id_.in (); 00082 }
void CORBA::Exception::_tao_any_destructor | ( | void * | ) | [static] |
Used in the non-copying Any insertion operator.
Reimplemented in CORBA::PolicyError, CORBA::InvalidPolicies, and CORBA::WrongTransaction.
Definition at line 114 of file Exception.cpp.
00115 { 00116 CORBA::Exception *tmp = static_cast<CORBA::Exception *> (x); 00117 delete tmp; 00118 }
virtual void CORBA::Exception::_tao_decode | ( | TAO_InputCDR & | cdr | ) | [pure virtual] |
Implemented in CORBA::ORB::InvalidName, CORBA::PolicyError, CORBA::InvalidPolicies, CORBA::SystemException, and CORBA::WrongTransaction.
Referenced by TAO::Synch_Twoway_Invocation::handle_user_exception().
virtual CORBA::Exception* CORBA::Exception::_tao_duplicate | ( | void | ) | const [pure virtual] |
Deep copy.
The following operation is used in the implementation of it performs a deep copy of the exception, normally it is implemented as:
class SomeException : public // Derives from CORBA::Exception { public: virtual CORBA::Exception *_tao_duplicate (void) const { CORBA::Exception *result = 0; ACE_NEW_RETURN ( result, SomeException (*this), 0 ); return result; } };
Implemented in CORBA::ORB::InvalidName, CORBA::PolicyError, CORBA::InvalidPolicies, CORBA::SystemException, and CORBA::WrongTransaction.
Referenced by CORBA::Environment::Environment().
virtual void CORBA::Exception::_tao_encode | ( | TAO_OutputCDR & | cdr | ) | const [pure virtual] |
Implemented in CORBA::ORB::InvalidName, CORBA::PolicyError, CORBA::InvalidPolicies, CORBA::SystemException, and CORBA::WrongTransaction.
Referenced by TAO_GIOP_Message_Base::generate_exception_reply().
void CORBA::Exception::_tao_print_exception | ( | const char * | info, | |
FILE * | f = stdout | |||
) | const |
Print the exception to output determined by f.
Definition at line 91 of file Exception.cpp.
References ACE_ERROR, ACE_TEXT, ACE_TEXT_CHAR_TO_TCHAR, and LM_ERROR.
Referenced by TAO_GIOP_Message_Base::process_request().
00093 { 00094 ACE_ERROR ((LM_ERROR, 00095 ACE_TEXT ("(%P|%t) EXCEPTION, %s\n") 00096 ACE_TEXT ("%s\n"), 00097 ACE_TEXT_CHAR_TO_TCHAR (user_provided_info), 00098 ACE_TEXT_CHAR_TO_TCHAR (this->_info ().c_str ()))); 00099 }
virtual CORBA::TypeCode_ptr CORBA::Exception::_tao_type | ( | void | ) | const [pure virtual] |
Will be overridden in the concrete derived classes.
Implemented in CORBA::PolicyError, CORBA::InvalidPolicies, CORBA::UserException, and CORBA::WrongTransaction.
CORBA::Exception & CORBA::Exception::operator= | ( | const Exception & | src | ) | [protected] |
Assignment operator.
Definition at line 67 of file Exception.cpp.
References ACE_ASSERT, id_, name_, and CORBA::string_dup().
Referenced by CORBA::UserException::operator=(), and CORBA::SystemException::operator=().
00068 { 00069 this->id_ = CORBA::string_dup (src.id_); 00070 ACE_ASSERT (this->id_.in () != 0); 00071 00072 this->name_ = CORBA::string_dup (src.name_); 00073 ACE_ASSERT (this->name_.in () != 0); 00074 00075 return *this; 00076 }
CORBA::String_var CORBA::Exception::id_ [private] |
Repository Id.
Definition at line 199 of file Exception.h.
Referenced by _rep_id(), and operator=().
CORBA::String_var CORBA::Exception::name_ [private] |
Local name.
Definition at line 202 of file Exception.h.
Referenced by _name(), Exception(), and operator=().