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 ACE_Unbounded_Queue< CORBA::Long > | OFFSET_LIST
typedef ACE_Unbounded_Queue_Iterator< CORBA::Long > | OFFSET_LIST_ITERATOR
typedef ACE_Hash_Map_Entry< const char *, OFFSET_LIST * > | OFFSET_MAP_ENTRY
typedef ACE_Hash_Map_Manager_Ex< const char *, OFFSET_LIST *, ACE_Hash< const char * >, ACE_Equal_To< const char * >, ACE_Null_Mutex > | OFFSET_MAP
typedef ACE_Hash_Map_Iterator_Ex< const char *, OFFSET_LIST *, ACE_Hash< const char * >, ACE_Equal_To< const char * >, ACE_Null_Mutex > | OFFSET_MAP_ITERATOR
typedef CORBA::TypeCode_ptr | _ptr_type
typedef CORBA::TypeCode_var | _var_type

## Public Methods

CORBA::Boolean | equal (CORBA::TypeCode_ptr ACE_ENV_ARG_DECL_WITH_DEFAULTS) const
| Compares two typecodes. Must be identical in every respect.
CORBA::Boolean | equivalent (CORBA::TypeCode_ptr ACE_ENV_ARG_DECL_WITH_DEFAULTS) const
| Conforms to CORBA 2.3.1 (99-10-07).
CORBA::TCKind | kind (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) const
| For all TypeCode kinds, returns the "kind" of the typecode.
const char * | id (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) const
const char * | name (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) const
| Returns name (), raises (BadKind).
CORBA::ULong | member_count (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) const
const char * | member_name (CORBA::ULong slot ACE_ENV_ARG_DECL_WITH_DEFAULTS) const
CORBA::TypeCode_ptr | member_type (CORBA::ULong slot ACE_ENV_ARG_DECL_WITH_DEFAULTS) const
CORBA::Any_ptr | member_label (CORBA::ULong n ACE_ENV_ARG_DECL_WITH_DEFAULTS) const
| For tk_union. Returns the label. Raises BadKind, Bounds.
CORBA::TypeCode_ptr | discriminator_type (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) const
| Returns the discriminator type for tk_union. raises (BadKind).
CORBA::Long | default_index (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) const
| Returns the default slot for the tk_union. Raises (BadKind).
CORBA::ULong | length (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) const
CORBA::TypeCode_ptr | content_type (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) const
CORBA::UShort | fixed_digits (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) const
| These just throw CORBA::NO_IMPLEMENT.
CORBA::Short | fixed_scale (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) const
CORBA::Visibility | member_visibility (CORBA::ULong slot ACE_ENV_ARG_DECL_WITH_DEFAULTS) const
CORBA::ValueModifier | type_modifier (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) const
| Returns the value modifier. Raises (BadKind). Useful for tk_value only.
CORBA::TypeCode_ptr | concrete_base_type (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) const
| TypeCode (CORBA::TCKind kind)
| TypeCode (CORBA::TCKind kind, size_t length, const char *buffer, CORBA::Boolean orb_owns_tc, CORBA::ULong size, CORBA::TypeCode_ptr parent=0)
| ~TypeCode (void)
| destructor
CORBA::ULong | _incr_refcnt (void)
| These are used to indicate the status of marshaling.
CORBA::ULong | _decr_refcnt (void)
CORBA::Any_ptr | parameter (const CORBA::Long slot ACE_ENV_ARG_DECL_WITH_DEFAULTS)
CORBA::ULong | param_count (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) const
TypeCode_ptr | unalias (ACE_ENV_SINGLE_ARG_DECL)
| Strip away all typedefs, if any.
OFFSET_MAP * | offset_map (void) const
void | offset_map (OFFSET_MAP *map)

## Static Public Methods

CORBA::TypeCode_ptr | _duplicate (CORBA::TypeCode_ptr tc)
| Duplicates i.e., increments ref count.
CORBA::TypeCode_ptr | _nil (void)
| Returns a NULL typecode.
void | _tao_decode (const TypeCode *parent, TAO_InputCDR &cdr, TypeCode *&child ACE_ENV_ARG_DECL)
void | _tao_any_destructor (void *)
| Used in our destruction when we are in an Any.
CORBA::Boolean | skip_typecode (TAO_InputCDR &stream)

## Public Attributes

size_t | length_
| length of the encapsulated stream
const char * | buffer_
| the encapsulated stream
CORBA::Long | byte_order_
| The byte order in the encapsulated stream.
CORBA::Long | kind_
| the TypeCode kind
CORBA::TypeCode_ptr | parent_
const char * | tc_base_
const char * | root_tc_base_

## Static Public Attributes

CORBA::TypeCode_ptr | _tc_Bounds = 0
CORBA::TypeCode_ptr | _tc_BadKind = 0

## Private Methods

CORBA::Boolean | equ_common (CORBA::TypeCode_ptr tc, CORBA::Boolean equiv_only ACE_ENV_ARG_DECL) const
CORBA::Boolean | private_equal (CORBA::TypeCode_ptr tc, CORBA::Boolean equiv_only ACE_ENV_ARG_DECL) const
| Compares the typecodes.
const char * | private_id (ACE_ENV_SINGLE_ARG_DECL) const
const char * | private_name (ACE_ENV_SINGLE_ARG_DECL) const
| returns name (), raises (BadKind)
CORBA::ULong | private_member_count (ACE_ENV_SINGLE_ARG_DECL) const
CORBA::TypeCode_ptr | private_member_type (CORBA::ULong slot ACE_ENV_ARG_DECL) const
const char * | private_member_name (CORBA::ULong slot ACE_ENV_ARG_DECL) const
CORBA::Any_ptr | private_member_label (CORBA::ULong n ACE_ENV_ARG_DECL) const
| For tk_union. Returns the label. Raises BadKind, Bounds.
CORBA::TypeCode_ptr | private_discriminator_type (ACE_ENV_SINGLE_ARG_DECL) const
CORBA::TypeCode_ptr | private_discriminator_type_i (ACE_ENV_SINGLE_ARG_DECL) const
CORBA::Long | private_default_index (ACE_ENV_SINGLE_ARG_DECL) const
| returns the default slot for the tk_union. Raises (BadKind);
CORBA::Long | private_default_index_i (ACE_ENV_SINGLE_ARG_DECL) const
CORBA::Long | private_length (ACE_ENV_SINGLE_ARG_DECL) const
CORBA::TypeCode_ptr | private_content_type (ACE_ENV_SINGLE_ARG_DECL) const
CORBA::Visibility | private_member_visibility (CORBA::ULong slot ACE_ENV_ARG_DECL) const
CORBA::ValueModifier | private_type_modifier (ACE_ENV_SINGLE_ARG_DECL) const
CORBA::TypeCode_ptr | private_concrete_base_type (ACE_ENV_SINGLE_ARG_DECL) const
CORBA::Boolean | private_equal_objref (CORBA::TypeCode_ptr tc, CORBA::Boolean equiv_only ACE_ENV_ARG_DECL) const
| test equality for typecodes of objrefs
CORBA::Boolean | private_equal_struct (CORBA::TypeCode_ptr tc, CORBA::Boolean equiv_only ACE_ENV_ARG_DECL) const
| test equality for typecodes of structs
CORBA::Boolean | private_equal_union (CORBA::TypeCode_ptr tc, CORBA::Boolean equiv_only ACE_ENV_ARG_DECL) const
| test equality for typecodes of unions
CORBA::Boolean | private_equal_enum (CORBA::TypeCode_ptr tc, CORBA::Boolean equiv_only ACE_ENV_ARG_DECL) const
| test equality for typecodes of enums
CORBA::Boolean | private_equal_string (CORBA::TypeCode_ptr tc, CORBA::Boolean equiv_only ACE_ENV_ARG_DECL) const
| test equality for typecodes of strings
CORBA::Boolean | private_equal_wstring (CORBA::TypeCode_ptr tc, CORBA::Boolean equiv_only ACE_ENV_ARG_DECL) const
| test equality for typecodes of wide strings
CORBA::Boolean | private_equal_sequence (CORBA::TypeCode_ptr tc, CORBA::Boolean equiv_only ACE_ENV_ARG_DECL) const
| test equality for typecodes of sequences
CORBA::Boolean | private_equal_array (CORBA::TypeCode_ptr tc, CORBA::Boolean equiv_only ACE_ENV_ARG_DECL) const
| test equality for typecodes of array
CORBA::Boolean | private_equal_alias (CORBA::TypeCode_ptr tc, CORBA::Boolean equiv_only ACE_ENV_ARG_DECL) const
| test equality for typecodes of typedefs
CORBA::Boolean | private_equal_except (CORBA::TypeCode_ptr tc, CORBA::Boolean equiv_only ACE_ENV_ARG_DECL) const
| test equality for typecodes of exceptions
CORBA::Boolean | private_equal_valuetype (CORBA::TypeCode_ptr tc, CORBA::Boolean equiv_only ACE_ENV_ARG_DECL) const
| test equality for typecodes of exceptions
| TypeCode (const CORBA::TypeCode &src)
TypeCode & | operator= (const CORBA::TypeCode &src)

## Private Attributes

CORBA::ULong | refcount_
| if refcount reaches 0, free this typecode
TAO_SYNCH_MUTEX | refcount_lock_
CORBA::Boolean | orb_owns_
TAO::TC_Private_State * | private_state_
char * | non_aligned_buffer_
OFFSET_MAP * | offset_map_

## 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.

A TypeCode describes data. This one's as thin a wrapper around CDR octet sequences as is practical. There are guesses here about how the OMG C++ mapping and CORBA 2.0 IfR specification will interact.

Note:
  Use TypeCode_ptr, except in code (e.g. output of and OMG-IDL / compiler) that needs to create typecodes from their octet-sequence encodings.

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.

Note:
  (THREADING) 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

typedef ACE_Unbounded_Queue<CORBA::Long> CORBA::TypeCode::OFFSET_LIST

typedef ACE_Unbounded_Queue_Iterator<CORBA::Long> CORBA::TypeCode::OFFSET_LIST_ITERATOR

typedef ACE_Hash_Map_Manager_Ex<const char *, OFFSET_LIST *, ACE_Hash<const char *>, ACE_Equal_To<const char *>, ACE_Null_Mutex> CORBA::TypeCode::OFFSET_MAP

typedef ACE_Hash_Map_Entry<const char *, OFFSET_LIST *> CORBA::TypeCode::OFFSET_MAP_ENTRY

typedef ACE_Hash_Map_Iterator_Ex<const char *, OFFSET_LIST *, ACE_Hash<const char *>, ACE_Equal_To<const char *>, ACE_Null_Mutex> CORBA::TypeCode::OFFSET_MAP_ITERATOR

## Constructor & Destructor Documentation

CORBA::TypeCode::TypeCode | ( | CORBA::TCKind | kind | ) |

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

CORBA::TypeCode::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::~TypeCode | ( | void |  | ) |

| destructor

CORBA::TypeCode::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 |  | ) |

| These are used to indicate the status of marshaling.

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

| Returns a NULL typecode.

void CORBA::TypeCode::_tao_any_destructor | ( | void * |  | ) | `[static]`

| Used in our destruction when we are in an Any.

void CORBA::TypeCode::_tao_decode | ( | const TypeCode * | parent,
|  | TAO_InputCDR & | cdr,
|  | 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 | ACE_ENV_ARG_DECL_WITH_DEFAULTS | ) | const

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

ACE_INLINE CORBA::Boolean CORBA::TypeCode::equivalent | ( | CORBA::TypeCode_ptr | ACE_ENV_ARG_DECL_WITH_DEFAULTS | ) | const

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

CORBA::UShort CORBA::TypeCode::fixed_digits | ( | ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS |  | ) | const

| These just throw CORBA::NO_IMPLEMENT.

CORBA::Short CORBA::TypeCode::fixed_scale | ( | ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS |  | ) | const

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_WITH_DEFAULTS | ) | 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_WITH_DEFAULTS | ) | const

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

CORBA::Visibility CORBA::TypeCode::member_visibility | ( | CORBA::ULong slot | ACE_ENV_ARG_DECL_WITH_DEFAULTS | ) | const

| Returns the visibility (public/private) of the member at index 'slot'. Raises (BadKind, Bounds). Useful for tk_value only.

ACE_INLINE const char * CORBA::TypeCode::name | ( | ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS |  | ) | const

| Returns name (), raises (BadKind).

ACE_INLINE void CORBA::TypeCode::offset_map | ( | OFFSET_MAP * | map | ) |

ACE_INLINE CORBA::TypeCode::OFFSET_MAP * CORBA::TypeCode::offset_map | ( | void |  | ) | const

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 | ( | 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),

CORBA::TypeCode_ptr CORBA::TypeCode::private_concrete_base_type | ( | ACE_ENV_SINGLE_ARG_DECL |  | ) | const`[private]`

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

CORBA::TypeCode_ptr CORBA::TypeCode::private_content_type | ( | ACE_ENV_SINGLE_ARG_DECL |  | ) | 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 |  | ) | 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 |  | ) | 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 |  | ) | 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 |  | ) | 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 equiv_only | 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 equiv_only | ACE_ENV_ARG_DECL
| ) | const`[private]`

| test equality for typecodes of wide strings

const char * CORBA::TypeCode::private_id | ( | ACE_ENV_SINGLE_ARG_DECL |  | ) | 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 |  | ) | 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 |  | ) | 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

CORBA::Visibility CORBA::TypeCode::private_member_visibility | ( | CORBA::ULong slot | ACE_ENV_ARG_DECL | ) | const`[private]`

| Returns the visibility (public/private) of the member at index 'slot'. Raises (BadKind, Bounds). Useful for tk_value only.

const char * CORBA::TypeCode::private_name | ( | ACE_ENV_SINGLE_ARG_DECL |  | ) | const`[private]`

| returns name (), raises (BadKind)

CORBA::ValueModifier CORBA::TypeCode::private_type_modifier | ( | ACE_ENV_SINGLE_ARG_DECL |  | ) | const`[private]`

| Returns the value modifier. Raises (BadKind). Useful for tk_value only.

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.

CORBA::ValueModifier CORBA::TypeCode::type_modifier | ( | ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS |  | ) | const

| Returns the value modifier. Raises (BadKind). Useful for tk_value only.

CORBA::TypeCode_ptr CORBA::TypeCode::unalias | ( | ACE_ENV_SINGLE_ARG_DECL |  | ) |

| Strip away all typedefs, if any.

## Member Data Documentation

CORBA::TypeCode_ptr CORBA::TypeCode::_tc_BadKind = 0`[static]`

TAO_NAMESPACE_END TAO_NAMESPACE_END TAO_NAMESPACE_END TAO_NAMESPACE_END TAO_NAMESPACE_END TAO_NAMESPACE_END TAO_NAMESPACE_END TAO_NAMESPACE_END TAO_NAMESPACE_END TAO_NAMESPACE_END TAO_NAMESPACE_END TAO_NAMESPACE_END TAO_NAMESPACE_END TAO_NAMESPACE_END TAO_NAMESPACE_END TAO_NAMESPACE_END TAO_NAMESPACE_END TAO_NAMESPACE_END TAO_NAMESPACE_END TAO_NAMESPACE_END TAO_NAMESPACE_END CORBA::TypeCode_ptr CORBA::TypeCode::_tc_Bounds = 0`[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.

OFFSET_MAP* CORBA::TypeCode::offset_map_`[private]`

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

| If "orb_owns" is false, the value is a not a constant typecode with both the typecode and the buffer allocated (typically, this will be created by the IDL compiler generated code)

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.

TAO::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
- Typecode_Constants.cpp