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:

Collaboration graph
[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::Visibility 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. More...

CORBA::ValueModifier type_modifier (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) const
 Returns the value modifier. Raises (BadKind). Useful for tk_value only. 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)
 This constructor is used both for typecode constants and for heap-allocated TypeCodes. More...

 ~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_
 Indirected typecodes share "buffer" with a parent, and hold a reference to that parent to ensure its memory is not freed inappropriately. More...

const char * tc_base_
 my typecode base. More...

const char * root_tc_base_
 base of the topmost level typecode. More...


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
 equal() and equivalent() must both recurse, but their behavior is somewhat different (as defined in CORBA 2.3). More...

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::Visibility private_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. More...

CORBA::ValueModifier private_type_modifier (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) const
 Returns the value modifier. Raises (BadKind). Useful for tk_value only. More...

CORBA::TypeCode_ptr private_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::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_Stateprivate_state_
 maintains precomputed state. More...

char * non_aligned_buffer_
 Original buffer that may possibly be non-aligned. More...


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

CORBA::Visibility CORBA_TypeCode::member_visibility CORBA::ULong slot    ACE_ENV_ARG_DECL 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).

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]
 

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_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   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_WITH_DEFAULTS    const [private]
 

returns name (), raises (BadKind).

CORBA::ValueModifier CORBA_TypeCode::private_type_modifier ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS    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.


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:
Generated on Thu Oct 10 18:22:19 2002 for TAO by doxygen1.2.13.1 written by Dimitri van Heesch, © 1997-2001