Public Member Functions | Static Public Member Functions | Public Attributes | Private Attributes

CORBA::UnknownUserException Class Reference

UnknownUserException. More...

#include <Unknown_User_Exception.h>

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

List of all members.

Public Member Functions

 UnknownUserException (void)
 Constructor.
 UnknownUserException (CORBA::Any &exception)
 Constructor.
 UnknownUserException (const UnknownUserException &e)
 Copy constructor.
virtual ~UnknownUserException (void)
 Destructor.
virtual void _raise (void) const
 To throw an UnknownUserException of this type.
virtual CORBA::Exception_tao_duplicate (void) const
 Deep copy.
virtual void _tao_encode (TAO_OutputCDR &cdr) const
virtual void _tao_decode (TAO_InputCDR &cdr)
virtual const char * _rep_id (void) const
 Return the repository ID of the Exception.
virtual CORBA::TypeCode_ptr _tao_type (void) const
 This class has a specific typecode.

Static Public Member Functions

static UnknownUserException_downcast (CORBA::Exception *ex)
 Narrow to an UnknowUserException.
static UnknownUserException const * _downcast (CORBA::Exception const *ex)
 The const version of narrow operation.

Public Attributes

CORBA::Any &exception void
 Return the any containing the user exception.

Private Attributes

CORBA::Anyexception_
 Holder for the actual exception.

Detailed Description

UnknownUserException.

When user exceptions are received by a DII invocation the ORB is unable to create the exception with the right dynamic type; to workaround this problem it throws a CORBA::UnknownUserException that contains the exception inside an Any.

Definition at line 58 of file Unknown_User_Exception.h.


Constructor & Destructor Documentation

CORBA::UnknownUserException::UnknownUserException ( void   ) 

Constructor.

Definition at line 21 of file Unknown_User_Exception.cpp.

  : CORBA::UserException ("IDL:omg.org/CORBA/UnknownUserException:1.0",
                          "UnknownUserException"),
    exception_ (0)
{
}

CORBA::UnknownUserException::UnknownUserException ( CORBA::Any exception  ) 

Constructor.

Definition at line 28 of file Unknown_User_Exception.cpp.

  : CORBA::UserException ("IDL:omg.org/CORBA/UnknownUserException:1.0",
                         "UnknownUserException")
{
  ACE_NEW (this->exception_,
           CORBA::Any (ex));
}

CORBA::UnknownUserException::UnknownUserException ( const UnknownUserException e  ) 

Copy constructor.

Definition at line 36 of file Unknown_User_Exception.cpp.

  : CORBA::UserException (e._rep_id (),
                         e._name ())
{
  ACE_NEW (this->exception_,
           CORBA::Any (*e.exception_));
}

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

Destructor.

Definition at line 46 of file Unknown_User_Exception.cpp.

{
  delete this->exception_;
}


Member Function Documentation

CORBA::UnknownUserException * CORBA::UnknownUserException::_downcast ( CORBA::Exception ex  )  [static]

Narrow to an UnknowUserException.

Reimplemented from CORBA::UserException.

Definition at line 58 of file Unknown_User_Exception.cpp.

{
  return dynamic_cast<CORBA::UnknownUserException *> (ex);
}

CORBA::UnknownUserException const * CORBA::UnknownUserException::_downcast ( CORBA::Exception const *  exception  )  [static]

The const version of narrow operation.

Reimplemented from CORBA::UserException.

Definition at line 64 of file Unknown_User_Exception.cpp.

{
  return dynamic_cast<CORBA::UnknownUserException const *> (ex);
}

void CORBA::UnknownUserException::_raise ( void   )  const [virtual]

To throw an UnknownUserException of this type.

Implements CORBA::UserException.

Definition at line 70 of file Unknown_User_Exception.cpp.

{
  throw *this;
}

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

Return the repository ID of the Exception.

Reimplemented from CORBA::Exception.

Definition at line 100 of file Unknown_User_Exception.cpp.

{
  return this->exception_->_tao_get_typecode ()->id ();
}

void CORBA::UnknownUserException::_tao_decode ( TAO_InputCDR cdr  )  [virtual]

Implements CORBA::Exception.

Definition at line 94 of file Unknown_User_Exception.cpp.

{
  throw ::CORBA::MARSHAL ();
}

CORBA::Exception * CORBA::UnknownUserException::_tao_duplicate ( void   )  const [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;
   }
 };
 

Implements CORBA::Exception.

Definition at line 76 of file Unknown_User_Exception.cpp.

{
  CORBA::Exception *result;
  ACE_NEW_RETURN (
      result,
      CORBA::UnknownUserException (*this),
      0
    );
  return result;
}

void CORBA::UnknownUserException::_tao_encode ( TAO_OutputCDR cdr  )  const [virtual]

Implements CORBA::Exception.

Definition at line 88 of file Unknown_User_Exception.cpp.

{
  throw ::CORBA::MARSHAL ();
}

CORBA::TypeCode_ptr CORBA::UnknownUserException::_tao_type ( void   )  const [virtual]

This class has a specific typecode.

Reimplemented from CORBA::UserException.

Definition at line 106 of file Unknown_User_Exception.cpp.

{
  //return CORBA::_tc_UnknownUserException;
  return this->exception_->_tao_get_typecode ();
}


Member Data Documentation

Holder for the actual exception.

Definition at line 99 of file Unknown_User_Exception.h.

Return the any containing the user exception.

Definition at line 76 of file Unknown_User_Exception.h.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines