TAO::Any_SystemException Class Reference

Template Any class for IDL types with 2 modes of insertion. More...

#include <Any_SystemException.h>

Inheritance diagram for TAO::Any_SystemException:

Inheritance graph
[legend]
Collaboration diagram for TAO::Any_SystemException:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 Any_SystemException (_tao_destructor destructor, CORBA::TypeCode_ptr, CORBA::SystemException *const)
 Any_SystemException (_tao_destructor destructor, CORBA::TypeCode_ptr, const CORBA::SystemException &)
 Any_SystemException (CORBA::TypeCode_ptr)
virtual ~Any_SystemException (void)
virtual CORBA::Boolean marshal_value (TAO_OutputCDR &)
CORBA::Boolean demarshal_value (TAO_InputCDR &)
virtual const void * value (void) const
virtual void free_value (void)

Static Public Member Functions

static void insert (CORBA::Any &, _tao_destructor, CORBA::TypeCode_ptr, CORBA::SystemException *const)
static void insert_copy (CORBA::Any &, _tao_destructor destructor, CORBA::TypeCode_ptr, const CORBA::SystemException &)
static CORBA::Boolean extract (const CORBA::Any &, _tao_destructor, CORBA::TypeCode_ptr, const CORBA::SystemException *&, excp_factory f)

Protected Attributes

CORBA::SystemExceptionvalue_

Detailed Description

Template Any class for IDL types with 2 modes of insertion.

Used for the IDL types that have copying and non-copying insertion, but which are not (de)marshaled as pointers - struct, union, sequence, and exception.

Definition at line 42 of file Any_SystemException.h.


Constructor & Destructor Documentation

TAO_BEGIN_VERSIONED_NAMESPACE_DECL TAO::Any_SystemException::Any_SystemException ( _tao_destructor  destructor,
CORBA::TypeCode_ptr  ,
CORBA::SystemException const 
)

Definition at line 23 of file Any_SystemException.cpp.

Referenced by Any_SystemException().

00026   : Any_Impl (destructor,
00027               tc),
00028     value_ (val)
00029 {
00030 }

TAO::Any_SystemException::Any_SystemException ( _tao_destructor  destructor,
CORBA::TypeCode_ptr  ,
const CORBA::SystemException  
)

Definition at line 32 of file Any_SystemException.cpp.

References CORBA::SystemException::_tao_duplicate(), Any_SystemException(), and value_.

00035   : Any_Impl (destructor,
00036               tc)
00037 {
00038  this->value_ =
00039    dynamic_cast <CORBA::SystemException *> (val._tao_duplicate ());
00040 }

TAO::Any_SystemException::Any_SystemException ( CORBA::TypeCode_ptr   ) 

Definition at line 42 of file Any_SystemException.cpp.

References Any_SystemException().

00043   : Any_Impl (0,
00044               tc)
00045 {
00046 }

TAO::Any_SystemException::~Any_SystemException ( void   )  [virtual]

Definition at line 48 of file Any_SystemException.cpp.

References ~Any_SystemException().

Referenced by ~Any_SystemException().

00049 {
00050 }


Member Function Documentation

CORBA::Boolean TAO::Any_SystemException::demarshal_value ( TAO_InputCDR  ) 

Definition at line 189 of file Any_SystemException.cpp.

References CORBA::SystemException::_tao_decode(), demarshal_value(), and value_.

Referenced by demarshal_value().

00190 {
00191   try
00192     {
00193       this->value_->_tao_decode (cdr);
00194       return true;
00195     }
00196   catch (const ::CORBA::Exception&)
00197     {
00198     }
00199   return false;
00200 }

static CORBA::Boolean TAO::Any_SystemException::extract ( const CORBA::Any ,
_tao_destructor  ,
CORBA::TypeCode_ptr  ,
const CORBA::SystemException *&  ,
excp_factory  f 
) [static]

void TAO::Any_SystemException::free_value ( void   )  [virtual]

Reimplemented from TAO::Any_Impl.

Definition at line 156 of file Any_SystemException.cpp.

References free_value(), release(), and value_.

Referenced by free_value().

00157 {
00158   if (this->value_destructor_ != 0)
00159     {
00160       (*this->value_destructor_) (this->value_);
00161       this->value_destructor_ = 0;
00162     }
00163 
00164   ::CORBA::release (this->type_);
00165   this->value_ = 0;
00166 }

void TAO::Any_SystemException::insert ( CORBA::Any ,
_tao_destructor  ,
CORBA::TypeCode_ptr  ,
CORBA::SystemException const 
) [static]

Definition at line 53 of file Any_SystemException.cpp.

References ACE_NEW, insert(), and CORBA::Any::replace().

Referenced by insert().

00057 {
00058   Any_SystemException *new_impl = 0;
00059   ACE_NEW (new_impl,
00060            Any_SystemException (destructor,
00061                                 tc,
00062                                 value));
00063   any.replace (new_impl);
00064 }

void TAO::Any_SystemException::insert_copy ( CORBA::Any ,
_tao_destructor  destructor,
CORBA::TypeCode_ptr  ,
const CORBA::SystemException  
) [static]

Definition at line 67 of file Any_SystemException.cpp.

References ACE_NEW, insert_copy(), and CORBA::Any::replace().

Referenced by insert_copy().

00071 {
00072   Any_SystemException *new_impl = 0;
00073   ACE_NEW (new_impl,
00074            Any_SystemException (destructor,
00075                                 tc,
00076                                 value));
00077   any.replace (new_impl);
00078 }

CORBA::Boolean TAO::Any_SystemException::marshal_value ( TAO_OutputCDR  )  [virtual]

Implements TAO::Any_Impl.

Definition at line 175 of file Any_SystemException.cpp.

References CORBA::SystemException::_tao_encode(), marshal_value(), and value_.

Referenced by marshal_value().

00176 {
00177   try
00178     {
00179       this->value_->_tao_encode (cdr);
00180       return true;
00181     }
00182   catch (const ::CORBA::Exception&)
00183     {
00184     }
00185   return false;
00186 }

const void * TAO::Any_SystemException::value ( void   )  const [virtual]

Definition at line 169 of file Any_SystemException.cpp.

References value(), and value_.

Referenced by value().

00170 {
00171   return this->value_;
00172 }


Member Data Documentation

CORBA::SystemException* TAO::Any_SystemException::value_ [protected]

Definition at line 80 of file Any_SystemException.h.

Referenced by Any_SystemException(), demarshal_value(), free_value(), marshal_value(), and value().


The documentation for this class was generated from the following files:
Generated on Tue Feb 2 17:40:25 2010 for TAO_AnyTypeCode by  doxygen 1.4.7