CORBA::Exception Class Reference

Exception. More...

#include <Exception.h>

Inheritance diagram for CORBA::Exception:

Inheritance graph
[legend]
List of all members.

Public Member Functions

virtual ~Exception (void)
 Destructor.
 Exception (const Exception &src)
 Copy constructor.
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.
Exceptionoperator= (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.

Detailed Description

Exception.

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.

Todo:
According to the OMG CORBA C++ Mapping version 1.1, the copy constructors should be moved to "protected" section in class declarations. Since the current MS Visual C++ 7.1 compiler will cause some problems to TAO's exception mechanism, we defer doing this until we drop support for MSVC++ 7.1. Maybe there is another solution, have to test that later.


Constructor & Destructor Documentation

CORBA::Exception::~Exception ( void   )  [virtual]

Destructor.

CORBA::Exception::Exception ( const Exception src  ) 

Copy constructor.

CORBA::Exception::Exception ( void   )  [protected]

Default constructor.

TAO_BEGIN_VERSIONED_NAMESPACE_DECL CORBA::Exception::Exception ( const char *  repository_id,
const char *  local_name 
) [protected]

Construct from a respository id.


Member Function Documentation

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.

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.

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.

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.

const char * CORBA::Exception::_rep_id ( void   )  const [virtual]

Return the repository ID of the Exception.

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.

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.

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.

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.

void CORBA::Exception::_tao_print_exception ( const char *  info,
FILE *  f = stdout 
) const

Print the exception to output determined by f.

Note:
This method is TAO-specific.

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.


Member Data Documentation

CORBA::String_var CORBA::Exception::id_ [private]

Repository Id.

CORBA::String_var CORBA::Exception::name_ [private]

Local name.


The documentation for this class was generated from the following files:
Generated on Tue Nov 21 09:39:22 2006 for TAO by  doxygen 1.4.7-1