Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

CORBA::Exception Class Reference

Exception. More...

#include <Exception.h>

Inheritance diagram for CORBA::Exception:

Inheritance graph
[legend]
Collaboration diagram for CORBA::Exception:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 Exception (const Exception &src)
 Copy constructor.
Exceptionoperator= (const Exception &src)
 Assignment operator.
 Exception (const char *repository_id, const char *local_name)
 Construct from a respository id.
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

Exception_downcast (Exception *x)
Exception const * _downcast (Exception const *x)
void _tao_any_destructor (void *)
 Used in the non-copying Any insertion operator.

Protected Member Functions

 Exception (void)
 Default constructor.

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, all constructors, copy constructors and assignment operators should be moved to "protected" section in class declarations. Since the current MS Visual C++ 6.0 compiler will cause some problems to TAO's exception mechanism, we defer doing this until we drop support for MSVC++ 6.


Constructor & Destructor Documentation

CORBA::Exception::Exception const Exception src  ) 
 

Copy constructor.

TAO_BEGIN_VERSIONED_NAMESPACE_DECL CORBA::Exception::Exception const char *  repository_id,
const char *  local_name
 

Construct from a respository id.

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

Destructor.

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

Default constructor.


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  ) 
 

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 Thu Feb 16 03:50:37 2006 for TAO by  doxygen 1.3.9.1