#include <Any_Impl.h>
Inheritance diagram for TAO::Any_Impl:
Public Types | |
typedef void(*) | _tao_destructor (void *) |
Public Member Functions | |
CORBA::Boolean | marshal (TAO_OutputCDR &) |
virtual CORBA::Boolean | marshal_value (TAO_OutputCDR &)=0 |
virtual void | free_value (void) |
CORBA::TypeCode_ptr | type (void) const |
CORBA::TypeCode_ptr | _tao_get_typecode (void) const |
void | type (CORBA::TypeCode_ptr) |
virtual int | _tao_byte_order (void) const |
virtual void | _add_ref (void) |
virtual void | _remove_ref (void) |
virtual void | _tao_decode (TAO_InputCDR &) |
virtual CORBA::Boolean | to_object (CORBA::Object_ptr &) const |
virtual CORBA::Boolean | to_value (CORBA::ValueBase *&) const |
virtual CORBA::Boolean | to_abstract_base (CORBA::AbstractBase_ptr &) const |
bool | encoded (void) const |
Static Public Member Functions | |
static void | _tao_any_string_destructor (void *) |
Used to release these CORBA basic types. | |
static void | _tao_any_wstring_destructor (void *) |
Protected Member Functions | |
Any_Impl (_tao_destructor, CORBA::TypeCode_ptr, bool encoded=false) | |
virtual | ~Any_Impl (void) |
Protected Attributes | |
TAO::Any_Impl::_tao_destructor | value_destructor_ |
CORBA::TypeCode_ptr | type_ |
bool | encoded_ |
Private Attributes | |
ACE_Atomic_Op< TAO_SYNCH_MUTEX, unsigned long > | refcount_ |
Reference counter. |
Contains common functionality and some pure virtual methods.
Definition at line 64 of file Any_Impl.h.
typedef void(*) TAO::Any_Impl::_tao_destructor(void *) |
Generated data types define a 'destructor' function that correctly destroys an object stored in an Any.
Definition at line 69 of file Any_Impl.h.
TAO_BEGIN_VERSIONED_NAMESPACE_DECL TAO::Any_Impl::Any_Impl | ( | _tao_destructor | , | |
CORBA::TypeCode_ptr | , | |||
bool | encoded = false | |||
) | [protected] |
Definition at line 19 of file Any_Impl.cpp.
00022 : value_destructor_ (destructor) 00023 , type_ (CORBA::TypeCode::_duplicate (tc)) 00024 , encoded_ (encoded) 00025 , refcount_ (1) 00026 { 00027 }
TAO::Any_Impl::~Any_Impl | ( | void | ) | [protected, virtual] |
void TAO::Any_Impl::_add_ref | ( | void | ) | [virtual] |
Definition at line 91 of file Any_Impl.cpp.
References _add_ref(), and refcount_.
Referenced by _add_ref().
00092 { 00093 ++this->refcount_; 00094 }
void TAO::Any_Impl::_remove_ref | ( | void | ) | [virtual] |
Definition at line 97 of file Any_Impl.cpp.
References _remove_ref(), free_value(), and refcount_.
Referenced by _remove_ref().
00098 { 00099 const CORBA::ULong new_count = --this->refcount_; 00100 00101 if (new_count != 0) 00102 return; 00103 00104 this->free_value (); 00105 00106 delete this; 00107 }
void TAO::Any_Impl::_tao_any_string_destructor | ( | void * | ) | [static] |
Used to release these CORBA basic types.
Definition at line 77 of file Any_Impl.cpp.
References _tao_any_string_destructor(), and CORBA::string_free().
Referenced by _tao_any_string_destructor().
00078 { 00079 char *tmp = static_cast<char *> (x); 00080 CORBA::string_free (tmp); 00081 }
void TAO::Any_Impl::_tao_any_wstring_destructor | ( | void * | ) | [static] |
Definition at line 84 of file Any_Impl.cpp.
References _tao_any_wstring_destructor(), and CORBA::wstring_free().
Referenced by _tao_any_wstring_destructor().
00085 { 00086 CORBA::WChar *tmp = static_cast<CORBA::WChar *> (x); 00087 CORBA::wstring_free (tmp); 00088 }
int TAO::Any_Impl::_tao_byte_order | ( | void | ) | const [virtual] |
Reimplemented in TAO::Unknown_IDL_Type.
Definition at line 71 of file Any_Impl.cpp.
References _tao_byte_order(), and TAO_ENCAP_BYTE_ORDER.
Referenced by _tao_byte_order().
00072 { 00073 return TAO_ENCAP_BYTE_ORDER; 00074 }
void TAO::Any_Impl::_tao_decode | ( | TAO_InputCDR & | ) | [virtual] |
Reimplemented in TAO::Any_Array_Impl_T< T_slice, T_forany >, TAO::Any_Basic_Impl_T< T >, TAO::Any_Dual_Impl_T< T >, TAO::Any_Impl_T< T >, TAO::Any_Special_Impl_T< T, from_T, to_T >, and TAO::Unknown_IDL_Type.
Definition at line 110 of file Any_Impl.cpp.
References _tao_decode().
Referenced by _tao_decode().
CORBA::TypeCode_ptr TAO::Any_Impl::_tao_get_typecode | ( | void | ) | const |
Definition at line 58 of file Any_Impl.cpp.
References _tao_get_typecode(), and type_.
Referenced by _tao_get_typecode().
00059 { 00060 return this->type_; 00061 }
bool TAO::Any_Impl::encoded | ( | void | ) | const |
void TAO::Any_Impl::free_value | ( | void | ) | [virtual] |
Reimplemented in TAO::Any_Array_Impl_T< T_slice, T_forany >, TAO::Any_Dual_Impl_T< T >, TAO::Any_Impl_T< T >, TAO::Any_Special_Impl_T< T, from_T, to_T >, TAO::Any_SystemException, and TAO::Unknown_IDL_Type.
Definition at line 45 of file Any_Impl.cpp.
References free_value(), release(), and type_.
Referenced by _remove_ref(), and free_value().
00046 { 00047 // We always have to do this. 00048 ::CORBA::release (this->type_); 00049 }
CORBA::Boolean TAO::Any_Impl::marshal | ( | TAO_OutputCDR & | ) |
Definition at line 34 of file Any_Impl.cpp.
References marshal(), and marshal_value().
Referenced by marshal().
00035 { 00036 if ((cdr << this->type_) == 0) 00037 { 00038 return false; 00039 } 00040 00041 return this->marshal_value (cdr); 00042 }
virtual CORBA::Boolean TAO::Any_Impl::marshal_value | ( | TAO_OutputCDR & | ) | [pure virtual] |
CORBA::Boolean TAO::Any_Impl::to_abstract_base | ( | CORBA::AbstractBase_ptr & | ) | const [virtual] |
Reimplemented in TAO::Any_Impl_T< T >, and TAO::Unknown_IDL_Type.
Definition at line 129 of file Any_Impl.cpp.
References to_abstract_base().
Referenced by to_abstract_base().
CORBA::Boolean TAO::Any_Impl::to_object | ( | CORBA::Object_ptr & | ) | const [virtual] |
Reimplemented in TAO::Any_Impl_T< T >, TAO::Unknown_IDL_Type, TAO::Any_Impl_T< T >, and TAO::Any_Impl_T< T >.
Definition at line 117 of file Any_Impl.cpp.
References to_object().
Referenced by to_object().
CORBA::Boolean TAO::Any_Impl::to_value | ( | CORBA::ValueBase *& | ) | const [virtual] |
Reimplemented in TAO::Any_Impl_T< T >, and TAO::Unknown_IDL_Type.
Definition at line 123 of file Any_Impl.cpp.
References to_value().
Referenced by to_value().
void TAO::Any_Impl::type | ( | CORBA::TypeCode_ptr | ) |
Definition at line 64 of file Any_Impl.cpp.
References CORBA::TypeCode::_duplicate(), release(), type(), and type_.
00065 { 00066 ::CORBA::release (this->type_); 00067 this->type_ = CORBA::TypeCode::_duplicate (tc); 00068 }
CORBA::TypeCode_ptr TAO::Any_Impl::type | ( | void | ) | const |
Definition at line 52 of file Any_Impl.cpp.
References CORBA::TypeCode::_duplicate(), and type().
Referenced by type().
00053 { 00054 return CORBA::TypeCode::_duplicate (this->type_); 00055 }
bool TAO::Any_Impl::encoded_ [protected] |
ACE_Atomic_Op<TAO_SYNCH_MUTEX, unsigned long> TAO::Any_Impl::refcount_ [private] |
Reference counter.
Definition at line 109 of file Any_Impl.h.
Referenced by _add_ref(), and _remove_ref().
CORBA::TypeCode_ptr TAO::Any_Impl::type_ [protected] |
Definition at line 104 of file Any_Impl.h.
Referenced by _tao_get_typecode(), free_value(), and type().
TAO::Any_Impl::_tao_destructor TAO::Any_Impl::value_destructor_ [protected] |
Definition at line 103 of file Any_Impl.h.