#include <TypeCode.h>
Inheritance diagram for CORBA::TypeCode:
Public Types | |
typedef CORBA::TypeCode_ptr | _ptr_type |
typedef CORBA::TypeCode_var | _var_type |
typedef CORBA::TypeCode_out | _out_type |
Public Member Functions | |
virtual bool | tao_marshal_kind (TAO_OutputCDR &cdr) const |
Marshal the TypeCode TCKind . | |
virtual bool | tao_marshal (TAO_OutputCDR &cdr, CORBA::ULong offset) const =0 |
Marshal this TypeCode into a CDR output stream. | |
virtual void | tao_duplicate (void)=0 |
Increase the reference count on this TypeCode . | |
virtual void | tao_release (void)=0 |
Decrease the reference count on this object. | |
@c CORBA::TypeCode Methods | |
These methods are part of the public interface of CORBA::TypeCode class, as defined by the OMG CORBA specification and C++ mapping.
The C++ mapping does not declare the methods in the public | |
Boolean | equal (TypeCode_ptr tc) const |
Equality of two TypeCodes . | |
Boolean | equivalent (TypeCode_ptr tc) const |
Equivalence of two TypeCodes . | |
TCKind | kind (void) const |
The kind of TypeCode . | |
TypeCode_ptr | get_compact_typecode (void) const |
char const * | id (void) const |
The RepositoryId globally identifying the type. | |
char const * | name (void) const |
ULong | member_count (void) const |
The type member count. | |
char const * | member_name (ULong index) const |
The type member name. | |
TypeCode_ptr | member_type (ULong index) const |
The type member TypeCode . | |
Any * | member_label (ULong index) const |
The union member label. | |
TypeCode_ptr | discriminator_type (void) const |
The type of all non-default union member labels. | |
Long | default_index (void) const |
The index of the default union member. | |
ULong | length (void) const |
The length of the type. | |
TypeCode_ptr | content_type (void) const |
The underlying content type. | |
UShort | fixed_digits (void) const |
The number of significant digits. | |
UShort | fixed_scale (void) const |
The scale factor. | |
Visibility | member_visibility (ULong index) const |
ValueModifier | type_modifier (void) const |
TypeCode_ptr | concrete_base_type (void) const |
Static Public Member Functions | |
static CORBA::TypeCode_ptr | _duplicate (CORBA::TypeCode_ptr tc) |
Duplicate this TypeCode . | |
static CORBA::TypeCode_ptr | _nil (void) |
Returns a NULL typecode. | |
static void | _tao_any_destructor (void *x) |
Destruction callback for Anys. | |
Static Public Attributes | |
static CORBA::TypeCode_ptr const | _tc_Bounds |
static CORBA::TypeCode_ptr const | _tc_BadKind |
Protected Member Functions | |
TypeCode (CORBA::TCKind kind) | |
Constructor. | |
virtual | ~TypeCode (void) |
Destructor. | |
@c TypeCode Template Methods | |
Methods that must be implemented by CORBA::TypeCode subclasses if valid for those subclasses.
The default implementations of the non-pure virtual methods throw the
The | |
virtual Boolean | equal_i (TypeCode_ptr tc) const =0 |
virtual Boolean | equivalent_i (TypeCode_ptr tc) const =0 |
virtual TypeCode_ptr | get_compact_typecode_i (void) const =0 |
virtual char const * | id_i (void) const |
virtual char const * | name_i (void) const |
virtual ULong | member_count_i (void) const |
virtual char const * | member_name_i (ULong index) const |
virtual TypeCode_ptr | member_type_i (ULong index) const |
virtual Any * | member_label_i (ULong index) const |
virtual TypeCode_ptr | discriminator_type_i (void) const |
virtual Long | default_index_i (void) const |
virtual ULong | length_i (void) const |
virtual TypeCode_ptr | content_type_i (void) const |
virtual UShort | fixed_digits_i (void) const |
virtual UShort | fixed_scale_i (void) const |
virtual Visibility | member_visibility_i (ULong index) const |
virtual ValueModifier | type_modifier_i (void) const |
virtual TypeCode_ptr | concrete_base_type_i (void) const |
Protected Attributes | |
TCKind const | kind_ |
The kind of TypeCode. | |
Private Member Functions | |
TypeCode (TypeCode const &) | |
void | operator= (TypeCode const &) |
Classes | |
class | BadKind |
Invalid TypeCode operation exception. More... | |
class | Bounds |
Out-of-bounds member index exception. More... |
TypeCodes
are primarily used by CORBA::Anys
, the CORBA Interface Repository and the CORBA Dynamic Invocation Interface.
Definition at line 62 of file TypeCode.h.
Definition at line 431 of file TypeCode.h.
Definition at line 429 of file TypeCode.h.
Definition at line 430 of file TypeCode.h.
ACE_INLINE CORBA::TypeCode::TypeCode | ( | CORBA::TCKind | kind | ) | [protected] |
TAO_BEGIN_VERSIONED_NAMESPACE_DECL CORBA::TypeCode::~TypeCode | ( | void | ) | [protected, virtual] |
Destructor.
Protected destructor to enforce proper memory management through the reference counting mechanism.
Definition at line 23 of file TypeCode.cpp.
CORBA::TypeCode::TypeCode | ( | TypeCode const & | ) | [private] |
ACE_INLINE CORBA::TypeCode_ptr CORBA::TypeCode::_duplicate | ( | CORBA::TypeCode_ptr | tc | ) | [static] |
Duplicate this TypeCode
.
Statically instantiated TypeCodes
incur no reference count manipulation, i.e. reference counting is a no-op.
Dynamically instantiated TypeCodes
will have their reference count incremented by one each time this function is called.
Definition at line 29 of file TypeCode.inl.
References CORBA::is_nil(), and tao_duplicate().
Referenced by TAO::TypeCode::Value< StringType, TypeCodeType, FieldArrayType, RefCountPolicy >::concrete_base_type_i(), TAO::TypeCode::Sequence< CORBA::TypeCode_ptr const *, TAO::Null_RefCount_Policy >::content_type_i(), TAO::TypeCode::Sequence< TypeCodeType, RefCountPolicy >::content_type_i(), TAO::TypeCode::Alias< char const *, CORBA::TypeCode_ptr const *, TAO::Null_RefCount_Policy >::content_type_i(), TAO::TypeCode::Alias< StringType, TypeCodeType, RefCountPolicy >::content_type_i(), TAO::TypeCode::Union< StringType, TypeCodeType, CaseArrayType, RefCountPolicy >::discriminator_type_i(), TAO::In_Object_Argument_Cloner_T< CORBA::TypeCode_ptr >::duplicate(), TAO::TypeCode::String< TAO::Null_RefCount_Policy >::get_compact_typecode_i(), TAO::TypeCode::String< RefCountPolicy >::get_compact_typecode_i(), TAO::TypeCode::Sequence< CORBA::TypeCode_ptr const *, TAO::Null_RefCount_Policy >::get_compact_typecode_i(), TAO::TypeCode::Sequence< TypeCodeType, RefCountPolicy >::get_compact_typecode_i(), TAO::TypeCode::Fixed< RefCountPolicy >::get_compact_typecode_i(), TAO::Any_Special_Impl_T< T, from_T, to_T >::insert(), TAO::TypeCode::Value< StringType, TypeCodeType, FieldArrayType, RefCountPolicy >::member_type_i(), TAO::TypeCode::Union< StringType, TypeCodeType, CaseArrayType, RefCountPolicy >::member_type_i(), TAO::TypeCode::Struct< StringType, TypeCodeType, FieldArrayType, RefCountPolicy >::member_type_i(), operator<<=(), TAO::TypeCodeFactory::tc_any_factory(), TAO::TypeCodeFactory::tc_boolean_factory(), TAO::TypeCodeFactory::tc_char_factory(), TAO::TypeCodeFactory::tc_double_factory(), TAO::TypeCodeFactory::tc_float_factory(), TAO::TypeCodeFactory::tc_long_factory(), TAO::TypeCodeFactory::tc_longdouble_factory(), TAO::TypeCodeFactory::tc_longlong_factory(), TAO::TypeCodeFactory::tc_null_factory(), TAO::TypeCodeFactory::tc_objref_factory(), TAO::TypeCodeFactory::tc_octet_factory(), TAO::TypeCodeFactory::tc_Principal_factory(), TAO::TypeCodeFactory::tc_short_factory(), TAO::TypeCodeFactory::tc_string_factory(), TAO::TypeCodeFactory::tc_TypeCode_factory(), TAO::TypeCodeFactory::tc_ulong_factory(), TAO::TypeCodeFactory::tc_ulonglong_factory(), TAO::TypeCodeFactory::tc_ushort_factory(), TAO::TypeCodeFactory::tc_void_factory(), TAO::TypeCodeFactory::tc_wchar_factory(), TAO::TypeCode::Case< StringType, TypeCodeType >::type(), TAO::Any_Impl::type(), and CORBA::Any::type().
00030 { 00031 if (!CORBA::is_nil (tc)) 00032 tc->tao_duplicate (); 00033 00034 return tc; 00035 }
ACE_INLINE CORBA::TypeCode_ptr CORBA::TypeCode::_nil | ( | void | ) | [static] |
Returns a NULL typecode.
Definition at line 38 of file TypeCode.inl.
Referenced by TAO::TypeCode::Traits< Traits< STATIC_TYPECODE >::typecode_type >::get_typecode(), TAO::TypeCode::Traits< STATIC_TYPECODE >::get_typecode(), and TAO::TypeCodeFactory::tc_objref_factory().
ACE_INLINE void CORBA::TypeCode::_tao_any_destructor | ( | void * | x | ) | [static] |
Destruction callback for Anys.
Definition at line 146 of file TypeCode.inl.
References release().
Referenced by operator<<=(), and operator>>=().
00147 { 00148 ::CORBA::release (static_cast <CORBA::TypeCode_ptr> (x)); 00149 }
ACE_INLINE CORBA::TypeCode_ptr CORBA::TypeCode::concrete_base_type | ( | void | ) | const |
This method is valid for the following kinds of TypeCodes:
tk_value
tk_event
TypeCode
corresponding to the concrete base valuetype
or eventtype
. CORBA::TypeCode::_nil()
if no concrete base exists. Definition at line 140 of file TypeCode.inl.
References concrete_base_type_i().
Referenced by TAO_Marshal_Value::append(), and TAO_Marshal_Value::skip().
00141 { 00142 return this->concrete_base_type_i (); 00143 }
CORBA::TypeCode_ptr CORBA::TypeCode::concrete_base_type_i | ( | void | ) | const [protected, virtual] |
Reimplemented in TAO::TypeCode::Value< StringType, TypeCodeType, FieldArrayType, RefCountPolicy >, and TAO::TypeCode::Value< char const *, CORBA::TypeCode_ptr const *, Value_Field< char const *, CORBA::TypeCode_ptr const * > const *, TAO::Null_RefCount_Policy >.
Definition at line 215 of file TypeCode.cpp.
Referenced by concrete_base_type().
ACE_INLINE CORBA::TypeCode_ptr CORBA::TypeCode::content_type | ( | void | ) | const |
The underlying content type.
This method is valid for the following kinds of TypeCodes:
tk_sequence
tk_array
tk_value_box
tk_alias
Definition at line 110 of file TypeCode.inl.
References content_type_i().
Referenced by TAO_Marshal_Alias::append(), TAO_Marshal_Array::append(), TAO_Marshal_Sequence::append(), TAO_Marshal_Alias::skip(), TAO_Marshal_Array::skip(), and TAO_Marshal_Sequence::skip().
00111 { 00112 return this->content_type_i (); 00113 }
CORBA::TypeCode_ptr CORBA::TypeCode::content_type_i | ( | void | ) | const [protected, virtual] |
Reimplemented in TAO::TypeCode::Alias< StringType, TypeCodeType, RefCountPolicy >, TAO::TypeCode::Alias< char const *, CORBA::TypeCode_ptr const *, TAO::Null_RefCount_Policy >, TAO::TypeCode::Sequence< TypeCodeType, RefCountPolicy >, and TAO::TypeCode::Sequence< CORBA::TypeCode_ptr const *, TAO::Null_RefCount_Policy >.
Definition at line 185 of file TypeCode.cpp.
Referenced by content_type().
ACE_INLINE CORBA::Long CORBA::TypeCode::default_index | ( | void | ) | const |
The index of the default union member.
This method is valid for the following kinds of TypeCodes:
tk_union
Definition at line 98 of file TypeCode.inl.
References default_index_i().
Referenced by TAO_Marshal_Union::append(), and TAO_Marshal_Union::skip().
00099 { 00100 return this->default_index_i (); 00101 }
CORBA::Long CORBA::TypeCode::default_index_i | ( | void | ) | const [protected, virtual] |
Reimplemented in TAO::TypeCode::Union< StringType, TypeCodeType, CaseArrayType, RefCountPolicy >, and TAO::TypeCode::Union< char const *, CORBA::TypeCode_ptr const *, Case< char const *, CORBA::TypeCode_ptr const * > const *const *, TAO::Null_RefCount_Policy >.
Definition at line 173 of file TypeCode.cpp.
Referenced by default_index().
ACE_INLINE CORBA::TypeCode_ptr CORBA::TypeCode::discriminator_type | ( | void | ) | const |
The type of all non-default union member labels.
This method is valid for the following kinds of TypeCodes:
tk_union
Definition at line 92 of file TypeCode.inl.
References discriminator_type_i().
Referenced by TAO_Marshal_Union::append(), and TAO_Marshal_Union::skip().
00093 { 00094 return this->discriminator_type_i (); 00095 }
CORBA::TypeCode_ptr CORBA::TypeCode::discriminator_type_i | ( | void | ) | const [protected, virtual] |
Reimplemented in TAO::TypeCode::Union< StringType, TypeCodeType, CaseArrayType, RefCountPolicy >, and TAO::TypeCode::Union< char const *, CORBA::TypeCode_ptr const *, Case< char const *, CORBA::TypeCode_ptr const * > const *const *, TAO::Null_RefCount_Policy >.
Definition at line 167 of file TypeCode.cpp.
Referenced by discriminator_type().
CORBA::Boolean CORBA::TypeCode::equal | ( | TypeCode_ptr | tc | ) | const |
Equality of two TypeCodes
.
true
if and only if the set of legal operations is the same and invoking any operation on the this TypeCode
and tc returns identical results. Definition at line 34 of file TypeCode.cpp.
References CORBA::COMPLETED_NO, equal_i(), id(), CORBA::is_nil(), name(), CORBA::OMGVMCID, and ACE_OS::strcmp().
Referenced by TAO::TypeCode::Case< StringType, TypeCodeType >::equal(), TAO::TypeCode::Value< StringType, TypeCodeType, FieldArrayType, RefCountPolicy >::equal_i(), and TAO::TypeCode::Struct< StringType, TypeCodeType, FieldArrayType, RefCountPolicy >::equal_i().
00035 { 00036 if (this == tc) 00037 { 00038 return true; 00039 } 00040 else if (CORBA::is_nil (tc)) 00041 { 00042 throw ::CORBA::BAD_PARAM (CORBA::OMGVMCID | 13, CORBA::COMPLETED_NO); 00043 } 00044 00045 CORBA::TCKind const tc_kind = tc->kind (); 00046 00047 if (tc_kind != this->kind_) 00048 return false; 00049 00050 try 00051 { 00052 char const * const tc_id = tc->id (); 00053 00054 char const * const this_id = this->id (); 00055 00056 if (ACE_OS::strcmp (this_id, tc_id) != 0) 00057 return false; 00058 00059 char const * const tc_name = tc->name (); 00060 00061 char const * const this_name = this->name (); 00062 00063 if (ACE_OS::strcmp (this_name, tc_name) != 0) 00064 return false; 00065 } 00066 catch (const ::CORBA::TypeCode::BadKind&) 00067 { 00068 // Some TypeCodes do not support the id() and name() 00069 // operations. Ignore the failure, and continue equality 00070 // verification using TypeCode subclass-specific techniques 00071 // below. 00072 } 00073 00074 return this->equal_i (tc); 00075 }
virtual Boolean CORBA::TypeCode::equal_i | ( | TypeCode_ptr | tc | ) | const [protected, pure virtual] |
Implemented in TAO::TypeCode::Alias< StringType, TypeCodeType, RefCountPolicy >, TAO::TypeCode::Alias< char const *, CORBA::TypeCode_ptr const *, TAO::Null_RefCount_Policy >, TAO::TypeCode::Empty_Param, TAO::TypeCode::Enum< StringType, EnumeratorArrayType, RefCountPolicy >, TAO::TypeCode::Enum< char const *, char const *const *, TAO::Null_RefCount_Policy >, TAO::TypeCode::Fixed< RefCountPolicy >, TAO::TypeCode::Objref< StringType, RefCountPolicy >, TAO::TypeCode::Objref< char const *, TAO::Null_RefCount_Policy >, TAO::TypeCode::Sequence< TypeCodeType, RefCountPolicy >, TAO::TypeCode::Sequence< CORBA::TypeCode_ptr const *, TAO::Null_RefCount_Policy >, TAO::TypeCode::String< RefCountPolicy >, TAO::TypeCode::String< TAO::Null_RefCount_Policy >, TAO::TypeCode::Struct< StringType, TypeCodeType, FieldArrayType, RefCountPolicy >, TAO::TypeCode::Struct< char const *, CORBA::TypeCode_ptr const *, Struct_Field< char const *, CORBA::TypeCode_ptr const * > const *, TAO::Null_RefCount_Policy >, TAO::TypeCode::Union< StringType, TypeCodeType, CaseArrayType, RefCountPolicy >, TAO::TypeCode::Union< char const *, CORBA::TypeCode_ptr const *, Case< char const *, CORBA::TypeCode_ptr const * > const *const *, TAO::Null_RefCount_Policy >, TAO::TypeCode::Value< StringType, TypeCodeType, FieldArrayType, RefCountPolicy >, and TAO::TypeCode::Value< char const *, CORBA::TypeCode_ptr const *, Value_Field< char const *, CORBA::TypeCode_ptr const * > const *, TAO::Null_RefCount_Policy >.
Referenced by equal().
CORBA::Boolean CORBA::TypeCode::equivalent | ( | TypeCode_ptr | tc | ) | const |
Equivalence of two TypeCodes
.
Equivalence of two TypeCodes
satisfies a subset of the requirements necessary for equality.
Definition at line 78 of file TypeCode.cpp.
References CORBA::COMPLETED_NO, TAO_Pseudo_Var_T< T >::in(), CORBA::is_nil(), CORBA::OMGVMCID, ACE_OS::strcmp(), and ACE_OS::strlen().
Referenced by TAO::TypeCode::Case< StringType, TypeCodeType >::equivalent(), TAO::TypeCode::Value< StringType, TypeCodeType, FieldArrayType, RefCountPolicy >::equivalent_i(), TAO::Any_Impl_T< T >::extract(), TAO::Any_Dual_Impl_T< T >::extract(), TAO::Any_Basic_Impl_T< T >::extract(), TAO::Any_Basic_Impl::extract(), and TAO::Any_Array_Impl_T< T_slice, T_forany >::extract().
00079 { 00080 if (this == tc) 00081 { 00082 return true; 00083 } 00084 else if (CORBA::is_nil (tc)) 00085 { 00086 throw ::CORBA::BAD_PARAM (CORBA::OMGVMCID | 13, CORBA::COMPLETED_NO); 00087 } 00088 00089 CORBA::TypeCode_ptr const mutable_this = 00090 const_cast<CORBA::TypeCode_ptr> (this); 00091 00092 CORBA::TypeCode_var unaliased_this = TAO::unaliased_typecode (mutable_this); 00093 00094 CORBA::TypeCode_var unaliased_tc = TAO::unaliased_typecode (tc); 00095 00096 CORBA::TCKind const this_kind = unaliased_this->kind (); 00097 00098 CORBA::TCKind const tc_kind = unaliased_tc->kind (); 00099 00100 if (tc_kind != this_kind) 00101 return false; 00102 00103 try 00104 { 00105 char const * const this_id = unaliased_this->id (); 00106 00107 char const * const tc_id = unaliased_tc->id (); 00108 00109 if (ACE_OS::strlen (this_id) == 0 00110 || ACE_OS::strlen (tc_id) == 0) 00111 { 00112 return unaliased_this->equivalent_i (unaliased_tc.in ()); 00113 } 00114 else if (ACE_OS::strcmp (this_id, tc_id) != 0) 00115 { 00116 return false; 00117 } 00118 } 00119 catch (const ::CORBA::TypeCode::BadKind&) 00120 { 00121 // Some TypeCodes do not support the id() operation. Ignore the 00122 // failure, and continue equivalence verification using TypeCode 00123 // subclass-specific techniques. 00124 return unaliased_this->equivalent_i (unaliased_tc.in ()); 00125 } 00126 00127 return true; 00128 }
virtual Boolean CORBA::TypeCode::equivalent_i | ( | TypeCode_ptr | tc | ) | const [protected, pure virtual] |
Implemented in TAO::TypeCode::Alias< StringType, TypeCodeType, RefCountPolicy >, TAO::TypeCode::Alias< char const *, CORBA::TypeCode_ptr const *, TAO::Null_RefCount_Policy >, TAO::TypeCode::Empty_Param, TAO::TypeCode::Enum< StringType, EnumeratorArrayType, RefCountPolicy >, TAO::TypeCode::Enum< char const *, char const *const *, TAO::Null_RefCount_Policy >, TAO::TypeCode::Fixed< RefCountPolicy >, TAO::TypeCode::Objref< StringType, RefCountPolicy >, TAO::TypeCode::Objref< char const *, TAO::Null_RefCount_Policy >, TAO::TypeCode::Sequence< TypeCodeType, RefCountPolicy >, TAO::TypeCode::Sequence< CORBA::TypeCode_ptr const *, TAO::Null_RefCount_Policy >, TAO::TypeCode::String< RefCountPolicy >, TAO::TypeCode::String< TAO::Null_RefCount_Policy >, TAO::TypeCode::Struct< StringType, TypeCodeType, FieldArrayType, RefCountPolicy >, TAO::TypeCode::Struct< char const *, CORBA::TypeCode_ptr const *, Struct_Field< char const *, CORBA::TypeCode_ptr const * > const *, TAO::Null_RefCount_Policy >, TAO::TypeCode::Union< StringType, TypeCodeType, CaseArrayType, RefCountPolicy >, TAO::TypeCode::Union< char const *, CORBA::TypeCode_ptr const *, Case< char const *, CORBA::TypeCode_ptr const * > const *const *, TAO::Null_RefCount_Policy >, TAO::TypeCode::Value< StringType, TypeCodeType, FieldArrayType, RefCountPolicy >, and TAO::TypeCode::Value< char const *, CORBA::TypeCode_ptr const *, Value_Field< char const *, CORBA::TypeCode_ptr const * > const *, TAO::Null_RefCount_Policy >.
ACE_INLINE CORBA::UShort CORBA::TypeCode::fixed_digits | ( | void | ) | const |
The number of significant digits.
This method is valid for the following kinds of TypeCodes:
tk_fixed
Definition at line 116 of file TypeCode.inl.
References fixed_digits_i().
Referenced by TAO::TypeCode::Fixed< RefCountPolicy >::equal_i().
00117 { 00118 return this->fixed_digits_i (); 00119 }
CORBA::UShort CORBA::TypeCode::fixed_digits_i | ( | void | ) | const [protected, virtual] |
Reimplemented in TAO::TypeCode::Fixed< RefCountPolicy >.
Definition at line 191 of file TypeCode.cpp.
Referenced by fixed_digits().
ACE_INLINE CORBA::UShort CORBA::TypeCode::fixed_scale | ( | void | ) | const |
The scale factor.
This method is valid for the following kinds of TypeCodes:
tk_fixed
Definition at line 122 of file TypeCode.inl.
References fixed_scale_i().
Referenced by TAO::TypeCode::Fixed< RefCountPolicy >::equal_i().
00123 { 00124 return this->fixed_scale_i (); 00125 }
CORBA::UShort CORBA::TypeCode::fixed_scale_i | ( | void | ) | const [protected, virtual] |
Reimplemented in TAO::TypeCode::Fixed< RefCountPolicy >.
Definition at line 197 of file TypeCode.cpp.
Referenced by fixed_scale().
ACE_INLINE CORBA::TypeCode_ptr CORBA::TypeCode::get_compact_typecode | ( | void | ) | const |
TypeCode
; the exception being TypeCodes
with empty parameter lists. Those TypeCodes
are already compact, meaning that call this method on such TypeCodes
incurs no additional run-time memory requirements.TypeCodes
"over-the-wire" or your TypeCode
corresponds to a type with a large number of members, try to stick with the existing potentially non-compact TypeCode
.
TypeCodes
may also be generated statically by the TAO_IDL compiler by invoking it with its "-Gt" (i.e. enable optimized TypeCodes) command line option. Definition at line 50 of file TypeCode.inl.
References get_compact_typecode_i().
00051 { 00052 return this->get_compact_typecode_i (); 00053 }
virtual TypeCode_ptr CORBA::TypeCode::get_compact_typecode_i | ( | void | ) | const [protected, pure virtual] |
Implemented in TAO::TypeCode::Alias< StringType, TypeCodeType, RefCountPolicy >, TAO::TypeCode::Alias< char const *, CORBA::TypeCode_ptr const *, TAO::Null_RefCount_Policy >, TAO::TypeCode::Empty_Param, TAO::TypeCode::Enum< StringType, EnumeratorArrayType, RefCountPolicy >, TAO::TypeCode::Enum< char const *, char const *const *, TAO::Null_RefCount_Policy >, TAO::TypeCode::Fixed< RefCountPolicy >, TAO::TypeCode::Objref< StringType, RefCountPolicy >, TAO::TypeCode::Objref< char const *, TAO::Null_RefCount_Policy >, TAO::TypeCode::Sequence< TypeCodeType, RefCountPolicy >, TAO::TypeCode::Sequence< CORBA::TypeCode_ptr const *, TAO::Null_RefCount_Policy >, TAO::TypeCode::String< RefCountPolicy >, TAO::TypeCode::String< TAO::Null_RefCount_Policy >, TAO::TypeCode::Struct< StringType, TypeCodeType, FieldArrayType, RefCountPolicy >, TAO::TypeCode::Struct< char const *, CORBA::TypeCode_ptr const *, Struct_Field< char const *, CORBA::TypeCode_ptr const * > const *, TAO::Null_RefCount_Policy >, TAO::TypeCode::Union< StringType, TypeCodeType, CaseArrayType, RefCountPolicy >, TAO::TypeCode::Union< char const *, CORBA::TypeCode_ptr const *, Case< char const *, CORBA::TypeCode_ptr const * > const *const *, TAO::Null_RefCount_Policy >, TAO::TypeCode::Value< StringType, TypeCodeType, FieldArrayType, RefCountPolicy >, and TAO::TypeCode::Value< char const *, CORBA::TypeCode_ptr const *, Value_Field< char const *, CORBA::TypeCode_ptr const * > const *, TAO::Null_RefCount_Policy >.
Referenced by get_compact_typecode().
ACE_INLINE char const * CORBA::TypeCode::id | ( | void | ) | const |
The RepositoryId
globally identifying the type.
This method is valid for the following kinds of TypeCodes:
tk_objref
tk_struct
tk_union
tk_enum
tk_alias
tk_value
tk_value_box
tk_native
tk_abstract_interface
tk_local_interface
tk_except
tk_component
tk_home
tk_event
TypeCode
. Definition at line 56 of file TypeCode.inl.
References id_i().
Referenced by add_to_recursion_list(), equal(), TAO::TypeCode::Value< StringType, TypeCodeType, FieldArrayType, RefCountPolicy >::id_i(), TAO::TypeCode::Struct< StringType, TypeCodeType, FieldArrayType, RefCountPolicy >::id_i(), and TAO::TypeCode::Enum< char const *, char const *const *, TAO::Null_RefCount_Policy >::id_i().
00057 { 00058 return this->id_i (); 00059 }
char const * CORBA::TypeCode::id_i | ( | void | ) | const [protected, virtual] |
Reimplemented in TAO::TypeCode::Alias< StringType, TypeCodeType, RefCountPolicy >, TAO::TypeCode::Alias< char const *, CORBA::TypeCode_ptr const *, TAO::Null_RefCount_Policy >, TAO::TypeCode::Enum< StringType, EnumeratorArrayType, RefCountPolicy >, TAO::TypeCode::Enum< char const *, char const *const *, TAO::Null_RefCount_Policy >, TAO::TypeCode::Objref< StringType, RefCountPolicy >, TAO::TypeCode::Objref< char const *, TAO::Null_RefCount_Policy >, TAO::TypeCode::Struct< StringType, TypeCodeType, FieldArrayType, RefCountPolicy >, TAO::TypeCode::Struct< char const *, CORBA::TypeCode_ptr const *, Struct_Field< char const *, CORBA::TypeCode_ptr const * > const *, TAO::Null_RefCount_Policy >, TAO::TypeCode::Union< StringType, TypeCodeType, CaseArrayType, RefCountPolicy >, TAO::TypeCode::Union< char const *, CORBA::TypeCode_ptr const *, Case< char const *, CORBA::TypeCode_ptr const * > const *const *, TAO::Null_RefCount_Policy >, TAO::TypeCode::Value< StringType, TypeCodeType, FieldArrayType, RefCountPolicy >, and TAO::TypeCode::Value< char const *, CORBA::TypeCode_ptr const *, Value_Field< char const *, CORBA::TypeCode_ptr const * > const *, TAO::Null_RefCount_Policy >.
Definition at line 131 of file TypeCode.cpp.
Referenced by id().
ACE_INLINE CORBA::TCKind CORBA::TypeCode::kind | ( | void | ) | const |
The kind of TypeCode
.
Definition at line 44 of file TypeCode.inl.
References kind_.
Referenced by TAO::Any_Basic_Impl::create_empty(), TAO::Any_Special_Impl_T< T, from_T, to_T >::extract(), TAO::Any_Basic_Impl::extract(), TAO::Any_Special_Impl_T< T, from_T, to_T >::insert(), TAO_Marshal_Object::perform_append(), and TAO_Marshal_Object::perform_skip().
00045 { 00046 return this->kind_; 00047 }
ACE_INLINE CORBA::ULong CORBA::TypeCode::length | ( | void | ) | const |
The length of the type.
This method is valid for the following kinds of TypeCodes:
tk_string
tk_wstring
tk_sequence
tk_array
Definition at line 104 of file TypeCode.inl.
References length_i().
Referenced by TAO_Marshal_Array::append(), TAO::TypeCode::String< TAO::Null_RefCount_Policy >::equal_i(), TAO::TypeCode::String< RefCountPolicy >::equal_i(), and TAO_Marshal_Array::skip().
00105 { 00106 return this->length_i (); 00107 }
CORBA::ULong CORBA::TypeCode::length_i | ( | void | ) | const [protected, virtual] |
Reimplemented in TAO::TypeCode::Sequence< TypeCodeType, RefCountPolicy >, TAO::TypeCode::Sequence< CORBA::TypeCode_ptr const *, TAO::Null_RefCount_Policy >, TAO::TypeCode::String< RefCountPolicy >, and TAO::TypeCode::String< TAO::Null_RefCount_Policy >.
Definition at line 179 of file TypeCode.cpp.
Referenced by length().
ACE_INLINE CORBA::ULong CORBA::TypeCode::member_count | ( | void | ) | const |
The type member count.
This method is valid for the following kinds of TypeCodes:
tk_struct
tk_union
tk_enum
tk_value
tk_except
tk_event
Definition at line 68 of file TypeCode.inl.
References member_count_i().
Referenced by TAO_Marshal_Value::append(), TAO_Marshal_Except::append(), TAO_Marshal_Union::append(), TAO_Marshal_Struct::append(), TAO_Marshal_Value::skip(), TAO_Marshal_Except::skip(), TAO_Marshal_Union::skip(), and TAO_Marshal_Struct::skip().
00069 { 00070 return this->member_count_i (); 00071 }
CORBA::ULong CORBA::TypeCode::member_count_i | ( | void | ) | const [protected, virtual] |
Reimplemented in TAO::TypeCode::Enum< StringType, EnumeratorArrayType, RefCountPolicy >, TAO::TypeCode::Enum< char const *, char const *const *, TAO::Null_RefCount_Policy >, TAO::TypeCode::Struct< StringType, TypeCodeType, FieldArrayType, RefCountPolicy >, TAO::TypeCode::Struct< char const *, CORBA::TypeCode_ptr const *, Struct_Field< char const *, CORBA::TypeCode_ptr const * > const *, TAO::Null_RefCount_Policy >, TAO::TypeCode::Union< StringType, TypeCodeType, CaseArrayType, RefCountPolicy >, TAO::TypeCode::Union< char const *, CORBA::TypeCode_ptr const *, Case< char const *, CORBA::TypeCode_ptr const * > const *const *, TAO::Null_RefCount_Policy >, TAO::TypeCode::Value< StringType, TypeCodeType, FieldArrayType, RefCountPolicy >, and TAO::TypeCode::Value< char const *, CORBA::TypeCode_ptr const *, Value_Field< char const *, CORBA::TypeCode_ptr const * > const *, TAO::Null_RefCount_Policy >.
Definition at line 143 of file TypeCode.cpp.
Referenced by member_count().
ACE_INLINE CORBA::Any * CORBA::TypeCode::member_label | ( | ULong | index | ) | const |
The union member label.
This method is valid for the following kinds of TypeCodes:
tk_union
Definition at line 86 of file TypeCode.inl.
References member_label_i().
Referenced by TAO_Marshal_Union::append(), and TAO_Marshal_Union::skip().
00087 { 00088 return this->member_label_i (index); 00089 }
CORBA::Any * CORBA::TypeCode::member_label_i | ( | ULong | index | ) | const [protected, virtual] |
Reimplemented in TAO::TypeCode::Union< StringType, TypeCodeType, CaseArrayType, RefCountPolicy >, and TAO::TypeCode::Union< char const *, CORBA::TypeCode_ptr const *, Case< char const *, CORBA::TypeCode_ptr const * > const *const *, TAO::Null_RefCount_Policy >.
Definition at line 161 of file TypeCode.cpp.
Referenced by member_label().
ACE_INLINE char const * CORBA::TypeCode::member_name | ( | ULong | index | ) | const |
The type member name.
This method is valid for the following kinds of TypeCodes:
tk_struct
tk_union
tk_enum
tk_value
tk_except
tk_event
TypeCode
. Definition at line 74 of file TypeCode.inl.
References member_name_i().
Referenced by TAO::TypeCode::Case< StringType, TypeCodeType >::equal().
00075 { 00076 return this->member_name_i (index); 00077 }
char const * CORBA::TypeCode::member_name_i | ( | ULong | index | ) | const [protected, virtual] |
Reimplemented in TAO::TypeCode::Enum< StringType, EnumeratorArrayType, RefCountPolicy >, TAO::TypeCode::Enum< char const *, char const *const *, TAO::Null_RefCount_Policy >, TAO::TypeCode::Struct< StringType, TypeCodeType, FieldArrayType, RefCountPolicy >, TAO::TypeCode::Struct< char const *, CORBA::TypeCode_ptr const *, Struct_Field< char const *, CORBA::TypeCode_ptr const * > const *, TAO::Null_RefCount_Policy >, TAO::TypeCode::Union< StringType, TypeCodeType, CaseArrayType, RefCountPolicy >, TAO::TypeCode::Union< char const *, CORBA::TypeCode_ptr const *, Case< char const *, CORBA::TypeCode_ptr const * > const *const *, TAO::Null_RefCount_Policy >, TAO::TypeCode::Value< StringType, TypeCodeType, FieldArrayType, RefCountPolicy >, and TAO::TypeCode::Value< char const *, CORBA::TypeCode_ptr const *, Value_Field< char const *, CORBA::TypeCode_ptr const * > const *, TAO::Null_RefCount_Policy >.
Definition at line 149 of file TypeCode.cpp.
Referenced by member_name().
ACE_INLINE CORBA::TypeCode_ptr CORBA::TypeCode::member_type | ( | ULong | index | ) | const |
The type member TypeCode
.
This method is valid for the following kinds of TypeCodes:
tk_struct
tk_union
tk_value
tk_except
tk_event
Definition at line 80 of file TypeCode.inl.
References member_type_i().
Referenced by TAO_Marshal_Value::append(), TAO_Marshal_Except::append(), TAO_Marshal_Union::append(), TAO_Marshal_Struct::append(), TAO::TypeCode::Case< StringType, TypeCodeType >::equal(), TAO::TypeCode::Case< StringType, TypeCodeType >::equivalent(), TAO_Marshal_Value::skip(), TAO_Marshal_Except::skip(), TAO_Marshal_Union::skip(), and TAO_Marshal_Struct::skip().
00081 { 00082 return this->member_type_i (index); 00083 }
CORBA::TypeCode_ptr CORBA::TypeCode::member_type_i | ( | ULong | index | ) | const [protected, virtual] |
Reimplemented in TAO::TypeCode::Struct< StringType, TypeCodeType, FieldArrayType, RefCountPolicy >, TAO::TypeCode::Struct< char const *, CORBA::TypeCode_ptr const *, Struct_Field< char const *, CORBA::TypeCode_ptr const * > const *, TAO::Null_RefCount_Policy >, TAO::TypeCode::Union< StringType, TypeCodeType, CaseArrayType, RefCountPolicy >, TAO::TypeCode::Union< char const *, CORBA::TypeCode_ptr const *, Case< char const *, CORBA::TypeCode_ptr const * > const *const *, TAO::Null_RefCount_Policy >, TAO::TypeCode::Value< StringType, TypeCodeType, FieldArrayType, RefCountPolicy >, and TAO::TypeCode::Value< char const *, CORBA::TypeCode_ptr const *, Value_Field< char const *, CORBA::TypeCode_ptr const * > const *, TAO::Null_RefCount_Policy >.
Definition at line 155 of file TypeCode.cpp.
Referenced by member_type().
ACE_INLINE CORBA::Visibility CORBA::TypeCode::member_visibility | ( | ULong | index | ) | const |
This method is valid for the following kinds of TypeCodes:
tk_value
tk_event
Definition at line 128 of file TypeCode.inl.
References member_visibility_i().
00129 { 00130 return this->member_visibility_i (index); 00131 }
CORBA::Visibility CORBA::TypeCode::member_visibility_i | ( | ULong | index | ) | const [protected, virtual] |
Reimplemented in TAO::TypeCode::Value< StringType, TypeCodeType, FieldArrayType, RefCountPolicy >, and TAO::TypeCode::Value< char const *, CORBA::TypeCode_ptr const *, Value_Field< char const *, CORBA::TypeCode_ptr const * > const *, TAO::Null_RefCount_Policy >.
Definition at line 203 of file TypeCode.cpp.
Referenced by member_visibility().
ACE_INLINE char const * CORBA::TypeCode::name | ( | void | ) | const |
This method is valid for the following kinds of TypeCodes:
tk_objref
tk_struct
tk_union
tk_enum
tk_alias
tk_value
tk_value_box
tk_native
tk_abstract_interface
tk_local_interface
tk_except
tk_component
tk_home
tk_event
TypeCode
. Definition at line 62 of file TypeCode.inl.
References name_i().
Referenced by equal().
00063 { 00064 return this->name_i (); 00065 }
char const * CORBA::TypeCode::name_i | ( | void | ) | const [protected, virtual] |
Reimplemented in TAO::TypeCode::Alias< StringType, TypeCodeType, RefCountPolicy >, TAO::TypeCode::Alias< char const *, CORBA::TypeCode_ptr const *, TAO::Null_RefCount_Policy >, TAO::TypeCode::Enum< StringType, EnumeratorArrayType, RefCountPolicy >, TAO::TypeCode::Enum< char const *, char const *const *, TAO::Null_RefCount_Policy >, TAO::TypeCode::Objref< StringType, RefCountPolicy >, TAO::TypeCode::Objref< char const *, TAO::Null_RefCount_Policy >, TAO::TypeCode::Struct< StringType, TypeCodeType, FieldArrayType, RefCountPolicy >, TAO::TypeCode::Struct< char const *, CORBA::TypeCode_ptr const *, Struct_Field< char const *, CORBA::TypeCode_ptr const * > const *, TAO::Null_RefCount_Policy >, TAO::TypeCode::Union< StringType, TypeCodeType, CaseArrayType, RefCountPolicy >, TAO::TypeCode::Union< char const *, CORBA::TypeCode_ptr const *, Case< char const *, CORBA::TypeCode_ptr const * > const *const *, TAO::Null_RefCount_Policy >, TAO::TypeCode::Value< StringType, TypeCodeType, FieldArrayType, RefCountPolicy >, and TAO::TypeCode::Value< char const *, CORBA::TypeCode_ptr const *, Value_Field< char const *, CORBA::TypeCode_ptr const * > const *, TAO::Null_RefCount_Policy >.
Definition at line 137 of file TypeCode.cpp.
Referenced by name().
void CORBA::TypeCode::operator= | ( | TypeCode const & | ) | [private] |
virtual void CORBA::TypeCode::tao_duplicate | ( | void | ) | [pure virtual] |
Increase the reference count on this TypeCode
.
Implemented in TAO::TypeCode::Alias< StringType, TypeCodeType, RefCountPolicy >, TAO::TypeCode::Alias< char const *, CORBA::TypeCode_ptr const *, TAO::Null_RefCount_Policy >, TAO::TypeCode::Empty_Param, TAO::TypeCode::Enum< StringType, EnumeratorArrayType, RefCountPolicy >, TAO::TypeCode::Enum< char const *, char const *const *, TAO::Null_RefCount_Policy >, TAO::TypeCode::Fixed< RefCountPolicy >, TAO::TypeCode::Objref< StringType, RefCountPolicy >, TAO::TypeCode::Objref< char const *, TAO::Null_RefCount_Policy >, TAO::TypeCode::Sequence< TypeCodeType, RefCountPolicy >, TAO::TypeCode::Sequence< CORBA::TypeCode_ptr const *, TAO::Null_RefCount_Policy >, TAO::TypeCode::String< RefCountPolicy >, TAO::TypeCode::String< TAO::Null_RefCount_Policy >, TAO::TypeCode::Struct< StringType, TypeCodeType, FieldArrayType, RefCountPolicy >, TAO::TypeCode::Struct< char const *, CORBA::TypeCode_ptr const *, Struct_Field< char const *, CORBA::TypeCode_ptr const * > const *, TAO::Null_RefCount_Policy >, TAO::TypeCode::Union< StringType, TypeCodeType, CaseArrayType, RefCountPolicy >, TAO::TypeCode::Union< char const *, CORBA::TypeCode_ptr const *, Case< char const *, CORBA::TypeCode_ptr const * > const *const *, TAO::Null_RefCount_Policy >, TAO::TypeCode::Value< StringType, TypeCodeType, FieldArrayType, RefCountPolicy >, and TAO::TypeCode::Value< char const *, CORBA::TypeCode_ptr const *, Value_Field< char const *, CORBA::TypeCode_ptr const * > const *, TAO::Null_RefCount_Policy >.
Referenced by _duplicate().
virtual bool CORBA::TypeCode::tao_marshal | ( | TAO_OutputCDR & | cdr, | |
CORBA::ULong | offset | |||
) | const [pure virtual] |
Marshal this TypeCode
into a CDR output stream.
Marshal this TypeCode
into the cdr output CDR stream, excluding the TypeCode
kind. Existing cdr contents will not be altered. The marshaled TypeCode
will be appended to the given cdr CDR output stream.
cdr | Output CDR stream into which the TypeCode will be marshaled. | |
offset | Number of bytes currently in the output CDR stream, including the top-level TypeCode TCKind . This argument is useful for recursive TypeCodes . TypeCodes that contain other TypeCodes should pass an updated offset value to the marshaling operation for those contained TypeCodes . |
true
if marshaling was successful.CORBA::TypeCode
interface.If this method returns false, the contents of the cdr output CDR stream are undefined.
Implemented in TAO::TypeCode::Alias< StringType, TypeCodeType, RefCountPolicy >, TAO::TypeCode::Alias< char const *, CORBA::TypeCode_ptr const *, TAO::Null_RefCount_Policy >, TAO::TypeCode::Empty_Param, TAO::TypeCode::Enum< StringType, EnumeratorArrayType, RefCountPolicy >, TAO::TypeCode::Enum< char const *, char const *const *, TAO::Null_RefCount_Policy >, TAO::TypeCode::Fixed< RefCountPolicy >, TAO::TypeCode::Objref< StringType, RefCountPolicy >, TAO::TypeCode::Objref< char const *, TAO::Null_RefCount_Policy >, TAO::TypeCode::Sequence< TypeCodeType, RefCountPolicy >, TAO::TypeCode::Sequence< CORBA::TypeCode_ptr const *, TAO::Null_RefCount_Policy >, TAO::TypeCode::String< RefCountPolicy >, TAO::TypeCode::String< TAO::Null_RefCount_Policy >, TAO::TypeCode::Struct< StringType, TypeCodeType, FieldArrayType, RefCountPolicy >, TAO::TypeCode::Struct< char const *, CORBA::TypeCode_ptr const *, Struct_Field< char const *, CORBA::TypeCode_ptr const * > const *, TAO::Null_RefCount_Policy >, TAO::TypeCode::Union< StringType, TypeCodeType, CaseArrayType, RefCountPolicy >, TAO::TypeCode::Union< char const *, CORBA::TypeCode_ptr const *, Case< char const *, CORBA::TypeCode_ptr const * > const *const *, TAO::Null_RefCount_Policy >, TAO::TypeCode::Value< StringType, TypeCodeType, FieldArrayType, RefCountPolicy >, and TAO::TypeCode::Value< char const *, CORBA::TypeCode_ptr const *, Value_Field< char const *, CORBA::TypeCode_ptr const * > const *, TAO::Null_RefCount_Policy >.
bool CORBA::TypeCode::tao_marshal_kind | ( | TAO_OutputCDR & | cdr | ) | const [virtual] |
Marshal the TypeCode
TCKind
.
Definition at line 28 of file TypeCode.cpp.
References kind_.
Referenced by TAO::TypeCode::Recursive_Type< TypeCodeBase, TypeCodeType, MemberArrayType >::tao_marshal_kind().
00029 { 00030 return cdr << this->kind_; 00031 }
virtual void CORBA::TypeCode::tao_release | ( | void | ) | [pure virtual] |
Decrease the reference count on this object.
Implemented in TAO::TypeCode::Alias< StringType, TypeCodeType, RefCountPolicy >, TAO::TypeCode::Alias< char const *, CORBA::TypeCode_ptr const *, TAO::Null_RefCount_Policy >, TAO::TypeCode::Empty_Param, TAO::TypeCode::Enum< StringType, EnumeratorArrayType, RefCountPolicy >, TAO::TypeCode::Enum< char const *, char const *const *, TAO::Null_RefCount_Policy >, TAO::TypeCode::Fixed< RefCountPolicy >, TAO::TypeCode::Objref< StringType, RefCountPolicy >, TAO::TypeCode::Objref< char const *, TAO::Null_RefCount_Policy >, TAO::TypeCode::Sequence< TypeCodeType, RefCountPolicy >, TAO::TypeCode::Sequence< CORBA::TypeCode_ptr const *, TAO::Null_RefCount_Policy >, TAO::TypeCode::String< RefCountPolicy >, TAO::TypeCode::String< TAO::Null_RefCount_Policy >, TAO::TypeCode::Struct< StringType, TypeCodeType, FieldArrayType, RefCountPolicy >, TAO::TypeCode::Struct< char const *, CORBA::TypeCode_ptr const *, Struct_Field< char const *, CORBA::TypeCode_ptr const * > const *, TAO::Null_RefCount_Policy >, TAO::TypeCode::Union< StringType, TypeCodeType, CaseArrayType, RefCountPolicy >, TAO::TypeCode::Union< char const *, CORBA::TypeCode_ptr const *, Case< char const *, CORBA::TypeCode_ptr const * > const *const *, TAO::Null_RefCount_Policy >, TAO::TypeCode::Value< StringType, TypeCodeType, FieldArrayType, RefCountPolicy >, and TAO::TypeCode::Value< char const *, CORBA::TypeCode_ptr const *, Value_Field< char const *, CORBA::TypeCode_ptr const * > const *, TAO::Null_RefCount_Policy >.
ACE_INLINE CORBA::ValueModifier CORBA::TypeCode::type_modifier | ( | void | ) | const |
This method is valid for the following kinds of TypeCodes:
tk_value
tk_event
Definition at line 134 of file TypeCode.inl.
References type_modifier_i().
00135 { 00136 return this->type_modifier_i (); 00137 }
CORBA::ValueModifier CORBA::TypeCode::type_modifier_i | ( | void | ) | const [protected, virtual] |
Reimplemented in TAO::TypeCode::Value< StringType, TypeCodeType, FieldArrayType, RefCountPolicy >, and TAO::TypeCode::Value< char const *, CORBA::TypeCode_ptr const *, Value_Field< char const *, CORBA::TypeCode_ptr const * > const *, TAO::Null_RefCount_Policy >.
Definition at line 209 of file TypeCode.cpp.
Referenced by type_modifier().
CORBA::TypeCode_ptr const CORBA::TypeCode::_tc_BadKind [static] |
CORBA::TypeCode_ptr const CORBA::TypeCode::_tc_Bounds [static] |
TCKind const CORBA::TypeCode::kind_ [protected] |
The kind of TypeCode.
Definition at line 492 of file TypeCode.h.
Referenced by kind(), and tao_marshal_kind().