Main Page Namespace List Class Hierarchy Alphabetical List Compound List File List Namespace Members Compound Members File Members Related Pages

# CORBA_TypeCode Class Reference

The CORBA TypeCode class. It maintains the in-memory representation of any OMG CORBA IDL data type. More...

`#include <Typecode.h>`

Collaboration diagram for CORBA_TypeCode:

[legend]
List of all members.

## Public Types
typedef CORBA_TypeCode_ptr | _ptr_type
typedef CORBA_TypeCode_var | _var_type
enum | traverse_status { TRAVERSE_STOP, TRAVERSE_CONTINUE }
## Public Methods
CORBA::Boolean | equal (CORBA::TypeCode_ptr ACE_ENV_ARG_DECL_WITH_DEFAULTS) const
| Compares two typecodes. Must be identical in every respect. More...
CORBA::Boolean | equivalent (CORBA::TypeCode_ptr ACE_ENV_ARG_DECL_WITH_DEFAULTS) const
| Conforms to CORBA 2.3.1 (99-10-07). More...
CORBA::TCKind | kind (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) const
| For all TypeCode kinds, returns the "kind" of the typecode. More...
const char * | id (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) const
| For tk_{objref,struct,union,enum,alias,except}. Returns the repository ID, raises BadKind. More...
const char * | name (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) const
| Returns name (), raises (BadKind). More...
CORBA::ULong | member_count (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) const
| Returns member_count (), raises (BadKind). Useful for tk_struct, tk_union, tk_enum, tk_alias, and tk_except. More...
const char * | member_name (CORBA::ULong slot ACE_ENV_ARG_DECL_WITH_DEFAULTS) const
| Returns member_name (...), raises (BadKind, Bounds); Useful for tk_struct, tk_union, tk_enum, tk_alias, and tk_except. More...
CORBA::TypeCode_ptr | member_type (CORBA::ULong slot ACE_ENV_ARG_DECL_WITH_DEFAULTS) const
| Returns member_type (...), raises (BadKind, Bounds); Useful for tk_struct, tk_union, and tk_except. More...
CORBA::Any_ptr | member_label (CORBA::ULong n ACE_ENV_ARG_DECL_WITH_DEFAULTS) const
| For tk_union. Returns the label. Raises BadKind, Bounds. More...
CORBA::TypeCode_ptr | discriminator_type (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) const
| Returns the discriminator type for tk_union. raises (BadKind). More...
CORBA::Long | default_index (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) const
| Returns the default slot for the tk_union. Raises (BadKind). More...
CORBA::ULong | length (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) const
| Returns length, raises (BadKind). Used for tk_string, tk_sequence, and tk_array. More...
CORBA::TypeCode_ptr | content_type (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) const
| Returns the content type (element type). Raises (BadKind); Useful for tk_sequence, tk_array, and tk_alias. More...
CORBA::TypeCode_ptr | concrete_base_type (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) const
| Returns the concrete base type. Raises (BadKind); Useful for tk_value only. More...
| CORBA_TypeCode (CORBA::TCKind kind)
| This constructor is used only for built-in TypeCode constants, with no parameters. More...
| CORBA_TypeCode (CORBA::TCKind kind, size_t length, const char *buffer, CORBA::Boolean orb_owns_tc, CORBA::ULong size, CORBA::TypeCode_ptr parent=0)
| ~CORBA_TypeCode (void)
| destructor. More...
CORBA::ULong | _incr_refcnt (void)
CORBA::ULong | _decr_refcnt (void)
CORBA::Any_ptr | parameter (const CORBA::Long slot ACE_ENV_ARG_DECL_WITH_DEFAULTS)
| Deprecated in the CORBA 2.2 spec and missing altogether from 2.3a (98-12-04),. More...
CORBA::ULong | param_count (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) const
| Deprecated, CORBA 1.2, not fully usable. Returns the number of parameters that the typecode takes. More...
## Static Public Methods
CORBA::TypeCode_ptr | _duplicate (CORBA::TypeCode_ptr tc)
| Duplicates i.e., increments ref count. More...
CORBA::TypeCode_ptr | _nil (void)
| Returns a NULL typecode. More...
void | _tao_decode (const CORBA_TypeCode *parent, TAO_InputCDR &cdr, CORBA_TypeCode *&child ACE_ENV_ARG_DECL)
| CDR decoding: the >> operator is not enough because we must also respect the parent/child relationship among TypeCodes. More...
CORBA::Boolean | skip_typecode (TAO_InputCDR &stream)
| skip a typecode encoding in a given CDR stream. This is just a helper function. More...
## Public Attributes
size_t | length_
| length of the encapsulated stream. More...
const char * | buffer_
| the encapsulated stream. More...
CORBA::Long | byte_order_
| The byte order in the encapsulated stream. More...
CORBA::Long | kind_
| the TypeCode kind. More...
CORBA::TypeCode_ptr | parent_
const char * | tc_base_
const char * | root_tc_base_
## Static Public Attributes
CORBA::TypeCode_ptr | _tc_Bounds
CORBA::TypeCode_ptr | _tc_BadKind
## Private Methods
CORBA::Boolean | equ_common (CORBA::TypeCode_ptr tc, CORBA::Boolean equiv_only ACE_ENV_ARG_DECL_WITH_DEFAULTS) const
CORBA::Boolean | private_equal (CORBA::TypeCode_ptr tc, CORBA::Boolean equiv_only ACE_ENV_ARG_DECL_WITH_DEFAULTS) const
| Compares the typecodes. More...
const char * | private_id (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) const
| For tk_{objref,struct,union,enum,alias,except}. Returns the repository ID, raises BadKind. More...
const char * | private_name (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) const
| returns name (), raises (BadKind). More...
CORBA::ULong | private_member_count (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) const
| returns member_count (), raises (BadKind). Useful for tk_struct, tk_union, tk_enum, tk_alias, and tk_except. More...
CORBA::TypeCode_ptr | private_member_type (CORBA::ULong slot ACE_ENV_ARG_DECL_WITH_DEFAULTS) const
| returns member_type (...), raises (BadKind, Bounds); Useful for tk_struct, tk_union, and tk_except. More...
const char * | private_member_name (CORBA::ULong slot ACE_ENV_ARG_DECL_WITH_DEFAULTS) const
| returns member_name (...), raises (BadKind, Bounds); Useful for tk_union, tk_struct, tk_except, and tk_enum. More...
CORBA::Any_ptr | private_member_label (CORBA::ULong n ACE_ENV_ARG_DECL_WITH_DEFAULTS) const
| For tk_union. Returns the label. Raises BadKind, Bounds. More...
CORBA::TypeCode_ptr | private_discriminator_type (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) const
| returns the discriminator type for tk_union, and acquires the lock for the wrapped function below. raises (BadKind). More...
CORBA::TypeCode_ptr | private_discriminator_type_i (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) const
| Acquires no lock so it can be called internally from blocks which have a lock. More...
CORBA::Long | private_default_index (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) const
| returns the default slot for the tk_union. Raises (BadKind);. More...
CORBA::Long | private_default_index_i (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) const
| Acquires no lock so it can be called internally from blocks which have a lock. More...
CORBA::Long | private_length (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) const
| returns length, raises (BadKind). Used for tk_string, tk_sequence, and tk_array. More...
CORBA::TypeCode_ptr | private_content_type (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) const
| returns the content type (element type). Raises (BadKind); Useful for tk_sequence, tk_array, and tk_alias. More...
CORBA::TypeCode_ptr | private_concrete_base_type (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) const
CORBA::Boolean | private_equal_objref (CORBA::TypeCode_ptr tc, CORBA::Boolean equiv_only ACE_ENV_ARG_DECL_WITH_DEFAULTS) const
| test equality for typecodes of objrefs. More...
CORBA::Boolean | private_equal_struct (CORBA::TypeCode_ptr tc, CORBA::Boolean equiv_only ACE_ENV_ARG_DECL_WITH_DEFAULTS) const
| test equality for typecodes of structs. More...
CORBA::Boolean | private_equal_union (CORBA::TypeCode_ptr tc, CORBA::Boolean equiv_only ACE_ENV_ARG_DECL_WITH_DEFAULTS) const
| test equality for typecodes of unions. More...
CORBA::Boolean | private_equal_enum (CORBA::TypeCode_ptr tc, CORBA::Boolean equiv_only ACE_ENV_ARG_DECL_WITH_DEFAULTS) const
| test equality for typecodes of enums. More...
CORBA::Boolean | private_equal_string (CORBA::TypeCode_ptr tc, CORBA::Boolean equiv_only ACE_ENV_ARG_DECL_WITH_DEFAULTS) const
| test equality for typecodes of strings. More...
CORBA::Boolean | private_equal_wstring (CORBA::TypeCode_ptr tc, CORBA::Boolean equiv_only ACE_ENV_ARG_DECL_WITH_DEFAULTS) const
| test equality for typecodes of wide strings. More...
CORBA::Boolean | private_equal_sequence (CORBA::TypeCode_ptr tc, CORBA::Boolean equiv_only ACE_ENV_ARG_DECL_WITH_DEFAULTS) const
| test equality for typecodes of sequences. More...
CORBA::Boolean | private_equal_array (CORBA::TypeCode_ptr tc, CORBA::Boolean equiv_only ACE_ENV_ARG_DECL_WITH_DEFAULTS) const
| test equality for typecodes of array. More...
CORBA::Boolean | private_equal_alias (CORBA::TypeCode_ptr tc, CORBA::Boolean equiv_only ACE_ENV_ARG_DECL_WITH_DEFAULTS) const
| test equality for typecodes of typedefs. More...
CORBA::Boolean | private_equal_except (CORBA::TypeCode_ptr tc, CORBA::Boolean equiv_only ACE_ENV_ARG_DECL_WITH_DEFAULTS) const
| test equality for typecodes of exceptions. More...
CORBA::Boolean | private_equal_valuetype (CORBA::TypeCode_ptr tc, CORBA::Boolean equiv_only ACE_ENV_ARG_DECL_WITH_DEFAULTS) const
| test equality for typecodes of exceptions. More...
| CORBA_TypeCode (const CORBA::TypeCode &src)
CORBA_TypeCode & | operator= (const CORBA::TypeCode &src)
## Private Attributes
CORBA::ULong | refcount_
| if refcount reaches 0, free this typecode. More...
TAO_SYNCH_MUTEX | refcount_lock_
| Protect the reference count, this is OK because we do no duplicates or releases on the critical path. More...
CORBA::Boolean | orb_owns_
| TAO's approach differs from the SunSoft IIOP. Constant typecodes are owned by the ORB and get freed only when the ORB dies. More...
TC_Private_State * | private_state_
char * | non_aligned_buffer_

## Detailed Description

The CORBA TypeCode class. It maintains the in-memory representation of any OMG CORBA IDL data type.

Implements the CORBA::TypeCode interface specified by CORBA 2.0 spec. Typecodes essentially consist of just the CDR octets that get marshaled and unmarshaled, and this code knows how to parse those octets and answer questions CORBA's TypeCode APIs require. NOTE: This isn't well tuned performance-wise. Given how much is variable (byte order, alignment) it's clear tuning has its limits with respect to CDR bytecode interpretation. THREADING NOTE: Typecodes are readonly data structures, and the only mutual exclusion relates to reference counting and construction.

## Member Typedef Documentation

typedef CORBA_TypeCode_ptr CORBA_TypeCode::_ptr_type

typedef CORBA_TypeCode_var CORBA_TypeCode::_var_type

## Member Enumeration Documentation

enum CORBA_TypeCode::traverse_status

  | Enumeration values:
  TRAVERSE_STOP |
  TRAVERSE_CONTINUE |

## Constructor & Destructor Documentation

CORBA_TypeCode::CORBA_TypeCode | ( | CORBA::TCKind | kind | ) |

| This constructor is used only for built-in TypeCode constants, with no parameters.

CORBA_TypeCode::CORBA_TypeCode | ( | CORBA::TCKind | kind,
|  | size_t | length,
|  | const char * | buffer,
|  | CORBA::Boolean | orb_owns_tc,
|  | CORBA::ULong | size,
|  | CORBA::TypeCode_ptr | parent = 0
| ) |

| This constructor is used both for typecode constants and for heap-allocated TypeCodes. The two are distinguished by the orb_owns_tc flag passed in by the creator. For simple param lists with a single numeric parameter, only 'length' matters. For complex param lists, or simple param lists for which the parameter is a string or typecode, length _and_ buffer matter. For typecodes that are precomputed from the encapsulation stream of the parent, even the "parent" argument matters because this implies that all children will share the octet buffers of its parent

CORBA_TypeCode::~CORBA_TypeCode | ( | void |  | ) |

| destructor.

CORBA_TypeCode::CORBA_TypeCode | ( | const CORBA::TypeCode & | src | ) | `[private]`

## Member Function Documentation

ACE_INLINE CORBA::ULong CORBA_TypeCode::_decr_refcnt | ( | void |  | ) |

ACE_INLINE CORBA::TypeCode_ptr CORBA_TypeCode::_duplicate | ( | CORBA::TypeCode_ptr | tc | ) | `[static]`

| Duplicates i.e., increments ref count.

ACE_INLINE CORBA::ULong CORBA_TypeCode::_incr_refcnt | ( | void |  | ) |

CORBA::TypeCode_ptr CORBA_TypeCode::_nil | ( | void |  | ) | `[static]`

| Returns a NULL typecode.

void CORBA_TypeCode::_tao_decode | ( | const CORBA_TypeCode * | parent,
|  | TAO_InputCDR & | cdr,
|  | CORBA_TypeCode *&child | ACE_ENV_ARG_DECL
| ) | `[static]`

| CDR decoding: the >> operator is not enough because we must also respect the parent/child relationship among TypeCodes.

CORBA::TypeCode_ptr CORBA_TypeCode::concrete_base_type | ( | ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS |  | ) | const

| Returns the concrete base type. Raises (BadKind); Useful for tk_value only.

CORBA::TypeCode_ptr CORBA_TypeCode::content_type | ( | ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS |  | ) | const

| Returns the content type (element type). Raises (BadKind); Useful for tk_sequence, tk_array, and tk_alias.

CORBA::Long CORBA_TypeCode::default_index | ( | ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS |  | ) | const

| Returns the default slot for the tk_union. Raises (BadKind).

CORBA::TypeCode_ptr CORBA_TypeCode::discriminator_type | ( | ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS |  | ) | const

| Returns the discriminator type for tk_union. raises (BadKind).

CORBA::Boolean CORBA_TypeCode::equ_common | ( | CORBA::TypeCode_ptr | tc,
|  | CORBA::Boolean equiv_only | ACE_ENV_ARG_DECL
| ) | const`[private]`

| equal() and equivalent() must both recurse, but their behavior is somewhat different (as defined in CORBA 2.3). This function allows us to reuse the same code by acting as the point of recursion and by adding the equiv_only flag, to differentiate the behavior where necessary.

ACE_INLINE CORBA::Boolean CORBA_TypeCode::equal | ( | CORBA::TypeCode_ptr | tc | ) | const

| Compares two typecodes. Must be identical in every respect.

ACE_INLINE CORBA::Boolean CORBA_TypeCode::equivalent | ( | CORBA::TypeCode_ptr | tc | ) | const

| Conforms to CORBA 2.3.1 (99-10-07).

ACE_INLINE const char * CORBA_TypeCode::id | ( | ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS |  | ) | const

| For tk_{objref,struct,union,enum,alias,except}. Returns the repository ID, raises BadKind.

ACE_INLINE CORBA::TCKind CORBA_TypeCode::kind | ( | ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS |  | ) | const

| For all TypeCode kinds, returns the "kind" of the typecode.

CORBA::ULong CORBA_TypeCode::length | ( | ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS |  | ) | const

| Returns length, raises (BadKind). Used for tk_string, tk_sequence, and tk_array.

ACE_INLINE CORBA::ULong CORBA_TypeCode::member_count | ( | ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS |  | ) | const

| Returns member_count (), raises (BadKind). Useful for tk_struct, tk_union, tk_enum, tk_alias, and tk_except.

CORBA::Any_ptr CORBA_TypeCode::member_label | ( | CORBA::ULong n | ACE_ENV_ARG_DECL_WITH_DEFAULTS | ) | const

| For tk_union. Returns the label. Raises BadKind, Bounds.

const char * CORBA_TypeCode::member_name | ( | CORBA::ULong slot | ACE_ENV_ARG_DECL | ) | const

| Returns member_name (...), raises (BadKind, Bounds); Useful for tk_struct, tk_union, tk_enum, tk_alias, and tk_except.

CORBA::TypeCode_ptr CORBA_TypeCode::member_type | ( | CORBA::ULong slot | ACE_ENV_ARG_DECL | ) | const

| Returns member_type (...), raises (BadKind, Bounds); Useful for tk_struct, tk_union, and tk_except.

ACE_INLINE const char * CORBA_TypeCode::name | ( | ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS |  | ) | const

| Returns name (), raises (BadKind).

CORBA_TypeCode& CORBA_TypeCode::operator= | ( | const CORBA::TypeCode & | src | ) | `[private]`

CORBA::ULong CORBA_TypeCode::param_count | ( | ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS |  | ) | const

| Deprecated, CORBA 1.2, not fully usable. Returns the number of parameters that the typecode takes.

CORBA::Any_ptr CORBA_TypeCode::parameter | ( | CORBA::Long | ACE_ENV_ARG_DECL | ) |

| Deprecated in the CORBA 2.2 spec and missing altogether from 2.3a (98-12-04),.

CORBA::TypeCode_ptr CORBA_TypeCode::private_concrete_base_type | ( | ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS |  | ) | const`[private]`

CORBA::TypeCode_ptr CORBA_TypeCode::private_content_type | ( | ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS |  | ) | const`[private]`

| returns the content type (element type). Raises (BadKind); Useful for tk_sequence, tk_array, and tk_alias.

CORBA::Long CORBA_TypeCode::private_default_index | ( | ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS |  | ) | const`[private]`

| returns the default slot for the tk_union. Raises (BadKind);.

CORBA::Long CORBA_TypeCode::private_default_index_i | ( | ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS |  | ) | const`[private]`

| Acquires no lock so it can be called internally from blocks which have a lock.

CORBA::TypeCode_ptr CORBA_TypeCode::private_discriminator_type | ( | ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS |  | ) | const`[private]`

| returns the discriminator type for tk_union, and acquires the lock for the wrapped function below. raises (BadKind).

CORBA::TypeCode_ptr CORBA_TypeCode::private_discriminator_type_i | ( | ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS |  | ) | const`[private]`

| Acquires no lock so it can be called internally from blocks which have a lock.

CORBA::Boolean CORBA_TypeCode::private_equal | ( | CORBA::TypeCode_ptr | tc,
|  | CORBA::Boolean equiv_only | ACE_ENV_ARG_DECL
| ) | const`[private]`

| Compares the typecodes.

CORBA::Boolean CORBA_TypeCode::private_equal_alias | ( | CORBA::TypeCode_ptr | tc,
|  | CORBA::Boolean equiv_only | ACE_ENV_ARG_DECL
| ) | const`[private]`

| test equality for typecodes of typedefs.

CORBA::Boolean CORBA_TypeCode::private_equal_array | ( | CORBA::TypeCode_ptr | tc,
|  | CORBA::Boolean equiv_only | ACE_ENV_ARG_DECL
| ) | const`[private]`

| test equality for typecodes of array.

CORBA::Boolean CORBA_TypeCode::private_equal_enum | ( | CORBA::TypeCode_ptr | tc,
|  | CORBA::Boolean equiv_only | ACE_ENV_ARG_DECL
| ) | const`[private]`

| test equality for typecodes of enums.

CORBA::Boolean CORBA_TypeCode::private_equal_except | ( | CORBA::TypeCode_ptr | tc,
|  | CORBA::Boolean equiv_only | ACE_ENV_ARG_DECL
| ) | const`[private]`

| test equality for typecodes of exceptions.

CORBA::Boolean CORBA_TypeCode::private_equal_objref | ( | CORBA::TypeCode_ptr | tc,
|  | CORBA::Boolean equiv_only | ACE_ENV_ARG_DECL
| ) | const`[private]`

| test equality for typecodes of objrefs.

CORBA::Boolean CORBA_TypeCode::private_equal_sequence | ( | CORBA::TypeCode_ptr | tc,
|  | CORBA::Boolean equiv_only | ACE_ENV_ARG_DECL
| ) | const`[private]`

| test equality for typecodes of sequences.

CORBA::Boolean CORBA_TypeCode::private_equal_string | ( | CORBA::TypeCode_ptr | tc,
|  | CORBA::Boolean | ACE_ENV_ARG_DECL
| ) | const`[private]`

| test equality for typecodes of strings.

CORBA::Boolean CORBA_TypeCode::private_equal_struct | ( | CORBA::TypeCode_ptr | tc,
|  | CORBA::Boolean equiv_only | ACE_ENV_ARG_DECL
| ) | const`[private]`

| test equality for typecodes of structs.

CORBA::Boolean CORBA_TypeCode::private_equal_union | ( | CORBA::TypeCode_ptr | tc,
|  | CORBA::Boolean equiv_only | ACE_ENV_ARG_DECL
| ) | const`[private]`

| test equality for typecodes of unions.

CORBA::Boolean CORBA_TypeCode::private_equal_valuetype | ( | CORBA::TypeCode_ptr | tc,
|  | CORBA::Boolean equiv_only | ACE_ENV_ARG_DECL
| ) | const`[private]`

| test equality for typecodes of exceptions.

CORBA::Boolean CORBA_TypeCode::private_equal_wstring | ( | CORBA::TypeCode_ptr | tc,
|  | CORBA::Boolean | ACE_ENV_ARG_DECL
| ) | const`[private]`

| test equality for typecodes of wide strings.

const char * CORBA_TypeCode::private_id | ( | ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS |  | ) | const`[private]`

| For tk_{objref,struct,union,enum,alias,except}. Returns the repository ID, raises BadKind.

CORBA::Long CORBA_TypeCode::private_length | ( | ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS |  | ) | const`[private]`

| returns length, raises (BadKind). Used for tk_string, tk_sequence, and tk_array.

CORBA::ULong CORBA_TypeCode::private_member_count | ( | ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS |  | ) | const`[private]`

| returns member_count (), raises (BadKind). Useful for tk_struct, tk_union, tk_enum, tk_alias, and tk_except.

CORBA::Any_ptr CORBA_TypeCode::private_member_label | ( | CORBA::ULong n | ACE_ENV_ARG_DECL | ) | const`[private]`

| For tk_union. Returns the label. Raises BadKind, Bounds.

const char * CORBA_TypeCode::private_member_name | ( | CORBA::ULong slot | ACE_ENV_ARG_DECL | ) | const`[private]`

| returns member_name (...), raises (BadKind, Bounds); Useful for tk_union, tk_struct, tk_except, and tk_enum.

CORBA::TypeCode_ptr CORBA_TypeCode::private_member_type | ( | CORBA::ULong slot | ACE_ENV_ARG_DECL | ) | const`[private]`

| returns member_type (...), raises (BadKind, Bounds); Useful for tk_struct, tk_union, and tk_except.

const char * CORBA_TypeCode::private_name | ( | ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS |  | ) | const`[private]`

| returns name (), raises (BadKind).

CORBA::Boolean CORBA_TypeCode::skip_typecode | ( | TAO_InputCDR & | stream | ) | `[static]`

| skip a typecode encoding in a given CDR stream. This is just a helper function.

## Member Data Documentation

CORBA::TypeCode_ptr CORBA_TypeCode::_tc_BadKind`[static]`

CORBA::TypeCode_ptr CORBA_TypeCode::_tc_Bounds`[static]`

const char* CORBA_TypeCode::buffer_

| the encapsulated stream.

CORBA::Long CORBA_TypeCode::byte_order_

| The byte order in the encapsulated stream.

CORBA::Long CORBA_TypeCode::kind_

| the TypeCode kind.

size_t CORBA_TypeCode::length_

| length of the encapsulated stream.

char* CORBA_TypeCode::non_aligned_buffer_`[private]`

| Original buffer that may possibly be non-aligned. We still need a handle to the allocated memory so that all of it can be freed by the destructor.

CORBA::Boolean CORBA_TypeCode::orb_owns_`[private]`

| TAO's approach differs from the SunSoft IIOP. Constant typecodes are owned by the ORB and get freed only when the ORB dies.

CORBA::TypeCode_ptr CORBA_TypeCode::parent_

| Indirected typecodes share "buffer" with a parent, and hold a reference to that parent to ensure its memory is not freed inappropriately.

TC_Private_State* CORBA_TypeCode::private_state_`[private]`

| maintains precomputed state. We need a separate class that maintains the precomputed state since most of the TypeCode class operations keep the state of the object constant. However, for the purpose of precomputation, we need to update the state. We cannot update state directly in the TypeCode class as that defeats the constness. However, we can keep an object in our typecode class that remains constant, but we can update its state.

CORBA::ULong CORBA_TypeCode::refcount_`[private]`

| if refcount reaches 0, free this typecode.

TAO_SYNCH_MUTEX CORBA_TypeCode::refcount_lock_`[private]`

| Protect the reference count, this is OK because we do no duplicates or releases on the critical path.

const char* CORBA_TypeCode::root_tc_base_

| base of the topmost level typecode. Applicable only if I have any parents, else it is the same as tc_base. This helps in case we have indirections and we need to traverse beyond encapsulation boundaries.

const char* CORBA_TypeCode::tc_base_

| my typecode base. Notice that the buffer_ member points to my encapsulation. However, for indirected typecodes, the offsets will point to my tk_kind field which should be pointed to be tc_base_

The documentation for this class was generated from the following files:

- Typecode.h
- Typecode.cpp
- Typecode.i