# TypeCode_CDR_Extraction.cpp File Reference

`#include "TypeCode_CDR_Extraction.h"`
`#include "tao/CDR.h"`
`#include "tao/TypeCode_Constants.h"`
`#include "tao/True_RefCount_Policy.h"`
`#include "tao/Alias_TypeCode.h"`
`#include "tao/Enum_TypeCode.h"`
`#include "tao/Fixed_TypeCode.h"`
`#include "Objref_TypeCode.h"`
`#include "tao/Sequence_TypeCode.h"`
`#include "tao/String_TypeCode.h"`
`#include "tao/Struct_TypeCode.h"`
`#include "tao/Union_TypeCode.h"`
`#include "tao/Value_TypeCode.h"`
`#include "tao/Recursive_Type_TypeCode.h"`
`#include "tao/TypeCode_Case_T.h"`
`#include "tao/TypeCode_Struct_Field.h"`
`#include "tao/TypeCode_Value_Field.h"`
`#include "ace/Array_Base.h"`

Include dependency graph for TypeCode_CDR_Extraction.cpp:

## Namespaces

namespace | TAO
namespace | TAO::TypeCodeFactory

## Classes

struct | TAO::TypeCodeFactory::TC_Info

## Typedefs

typedef ACE_Array_Base< TC_Info > | TC_Info_List
typedef ACE::Value_Ptr< TAO::TypeCode::Case< CORBA::String_var, CORBA::TypeCode_var > > | union_elem_type
typedef ACE_Array_Base< union_elem_type > | union_case_array_type

## Functions

bool | start_cdr_encap_extraction (TAO_InputCDR &cdr)
bool | tc_demarshal (TAO_InputCDR &cdr, CORBA::TypeCode_ptr &tc, TAO::TypeCodeFactory::TC_Info_List &infos)
| Demarshal a TypeCode.
bool | tc_demarshal_indirection (TAO_InputCDR &cdr, CORBA::TypeCode_ptr &tc, TAO::TypeCodeFactory::TC_Info_List &infos)
| Demarshal an indirected TypeCode.
bool | find_recursive_tc (char const *id, CORBA::TypeCode_ptr &tc, TAO::TypeCodeFactory::TC_Info_List &infos)
bool | tc_demarshal (TAO_InputCDR &cdr, CORBA::TypeCode_ptr &tc, TAO::TypeCodeFactory::TC_Info_List &infos)
bool | tc_demarshal_indirection (TAO_InputCDR &cdr, CORBA::TypeCode_ptr &tc, TAO::TypeCodeFactory::TC_Info_List &infos)
bool | operator>> (TAO_InputCDR &cdr, CORBA::TypeCode_ptr &tc)

## Variables

CORBA::ULong const | TYPECODE_INDIRECTION = 0xffffffff

## Typedef Documentation

typedef ACE_Array_Base< TC_Info > TAO::TypeCodeFactory::TC_Info_List

typedef ACE_Array_Base<union_elem_type> union_case_array_type`[static]`

typedef ACE::Value_Ptr<TAO::TypeCode::Case<CORBA::String_var, CORBA::TypeCode_var> > union_elem_type`[static]`

## Function Documentation

bool find_recursive_tc | ( | char const * | id,
|  | CORBA::TypeCode_ptr & | tc,
|  | TAO::TypeCodeFactory::TC_Info_List & | infos
| ) | `[static]`

bool operator>> | ( | TAO_InputCDR & | cdr,
|  | CORBA::TypeCode_ptr & | tc
| ) |

bool start_cdr_encap_extraction | ( | TAO_InputCDR & | cdr | ) | `[static]`

bool tc_demarshal | ( | TAO_InputCDR & | cdr,
|  | CORBA::TypeCode_ptr & | tc,
|  | TAO::TypeCodeFactory::TC_Info_List & | infos
| ) | `[static]`

bool tc_demarshal | ( | TAO_InputCDR & | cdr,
|  | CORBA::TypeCode_ptr & | tc,
|  | TAO::TypeCodeFactory::TC_Info_List & | infos
| ) | `[static]`

| Demarshal a TypeCode.

bool tc_demarshal_indirection | ( | TAO_InputCDR & | cdr,
|  | CORBA::TypeCode_ptr & | tc,
|  | TAO::TypeCodeFactory::TC_Info_List & | infos
| ) | `[static]`

Todo:
  Recursive TypeCode demarshaling is currently suboptimal due to redundant demarshaling of TypeCode parameters, such as repository ID, and excessive allocations/copying.

bool tc_demarshal_indirection | ( | TAO_InputCDR & | cdr,
|  | CORBA::TypeCode_ptr & | tc,
|  | TAO::TypeCodeFactory::TC_Info_List & | infos
| ) | `[static]`

| Demarshal an indirected TypeCode.

## Variable Documentation

CORBA::ULong const TYPECODE_INDIRECTION = 0xffffffff`[static]`