Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

TAO::TypeCode::Recursive_Type< TypeCodeBase, TypeCodeType, MemberArrayType > Class Template Reference

Recursive type TypeCode decorator template. More...

#include <Recursive_Type_TypeCode.h>

List of all members.

Public Member Functions

 Recursive_Type (CORBA::TCKind kind, char const *id, char const *name, MemberArrayType const &fields, CORBA::ULong nfields)
 Recursive struct constructor.
 Recursive_Type (char const *id, char const *name, TypeCodeType const &discriminant_type, MemberArrayType const &cases, CORBA::ULong ncases, CORBA::Long default_index)
 Recursive union constructor.
 Recursive_Type (CORBA::TCKind kind, char const *id, char const *name, CORBA::ValueModifier modifier, TypeCodeType const &concrete_base, MemberArrayType const &fields, CORBA::ULong nfields)
 Recursive valuetype constructor.
 Recursive_Type (CORBA::TCKind kind, char const *id)
 Dynamic Recursive_Type TypeCode constructor.
void struct_parameters (char const *name, MemberArrayType const &fields, CORBA::ULong nfields)
 Set struct TypeCode parameters.
void union_parameters (char const *name, TypeCodeType const &discriminant_type, MemberArrayType const &cases, CORBA::ULong ncases, CORBA::Long default_index)
 Set union TypeCode parameters.
void valuetype_parameters (char const *name, CORBA::ValueModifier modifier, TypeCodeType const &concrete_base, MemberArrayType const &fields, CORBA::ULong nfields)
 Set valuetype or eventtype TypeCode parameters.
TAO-specific @c CORBA::TypeCode Methods
Methods required by TAO's implementation of the CORBA::TypeCode class.

These are recursive type TypeCode marshaling operation overrides.

See also:
CORBA::TypeCode


virtual bool tao_marshal_kind (TAO_OutputCDR &cdr) const
virtual bool tao_marshal (TAO_OutputCDR &cdr, CORBA::ULong offset) const

Protected Member Functions

TAO @c CORBA::TypeCode Template Methods
Recursive type CORBA::TypeCode -specific template methods.

See also:
CORBA::TypeCode


virtual CORBA::Boolean equal_i (CORBA::TypeCode_ptr tc ACE_ENV_ARG_DECL) const
virtual CORBA::Boolean equivalent_i (CORBA::TypeCode_ptr tc ACE_ENV_ARG_DECL) const

Private Attributes

TAO_SYNCH_RECURSIVE_MUTEX lock_
 Internal state thread synchronization mutex.
bool in_recursion_


Detailed Description

template<class TypeCodeBase, typename TypeCodeType, typename MemberArrayType>
class TAO::TypeCode::Recursive_Type< TypeCodeBase, TypeCodeType, MemberArrayType >

Recursive type TypeCode decorator template.

This class template decorates the underlying TypeCode implementation TypeCodeBase to provide support for IDL defined recursive types. Only IDL an struct, union or valuetype may be recursive, which is why this decorator only supports constructors for the corresponding TypeCode implementations.


Constructor & Destructor Documentation

template<class TypeCodeBase, typename TypeCodeType, typename MemberArrayType>
ACE_INLINE TAO::TypeCode::Recursive_Type< TypeCodeBase, TypeCodeType, MemberArrayType >::Recursive_Type CORBA::TCKind  kind,
char const *  id,
char const *  name,
MemberArrayType const &  fields,
CORBA::ULong  nfields
 

Recursive struct constructor.

template<class TypeCodeBase, typename TypeCodeType, typename MemberArrayType>
ACE_INLINE TAO::TypeCode::Recursive_Type< TypeCodeBase, TypeCodeType, MemberArrayType >::Recursive_Type char const *  id,
char const *  name,
TypeCodeType const &  discriminant_type,
MemberArrayType const &  cases,
CORBA::ULong  ncases,
CORBA::Long  default_index
 

Recursive union constructor.

template<class TypeCodeBase, typename TypeCodeType, typename MemberArrayType>
ACE_INLINE TAO::TypeCode::Recursive_Type< TypeCodeBase, TypeCodeType, MemberArrayType >::Recursive_Type CORBA::TCKind  kind,
char const *  id,
char const *  name,
CORBA::ValueModifier  modifier,
TypeCodeType const &  concrete_base,
MemberArrayType const &  fields,
CORBA::ULong  nfields
 

Recursive valuetype constructor.

template<class TypeCodeBase, typename TypeCodeType, typename MemberArrayType>
ACE_INLINE TAO::TypeCode::Recursive_Type< TypeCodeBase, TypeCodeType, MemberArrayType >::Recursive_Type CORBA::TCKind  kind,
char const *  id
 

Dynamic Recursive_Type TypeCode constructor.


Member Function Documentation

template<class TypeCodeBase, typename TypeCodeType, typename MemberArrayType>
CORBA::Boolean TAO::TypeCode::Recursive_Type< TypeCodeBase, TypeCodeType, MemberArrayType >::equal_i CORBA::TypeCode_ptr tc  ACE_ENV_ARG_DECL  )  const [protected, virtual]
 

template<class TypeCodeBase, typename TypeCodeType, typename MemberArrayType>
CORBA::Boolean TAO::TypeCode::Recursive_Type< TypeCodeBase, TypeCodeType, MemberArrayType >::equivalent_i CORBA::TypeCode_ptr tc  ACE_ENV_ARG_DECL  )  const [protected, virtual]
 

template<class TypeCodeBase, typename TypeCodeType, typename MemberArrayType>
ACE_INLINE void TAO::TypeCode::Recursive_Type< TypeCodeBase, TypeCodeType, MemberArrayType >::struct_parameters char const *  name,
MemberArrayType const &  fields,
CORBA::ULong  nfields
 

Set struct TypeCode parameters.

template<class TypeCodeBase, typename TypeCodeType, typename MemberArrayType>
bool TAO::TypeCode::Recursive_Type< TypeCodeBase, TypeCodeType, MemberArrayType >::tao_marshal TAO_OutputCDR cdr,
CORBA::ULong  offset
const [virtual]
 

template<class TypeCodeBase, typename TypeCodeType, typename MemberArrayType>
bool TAO::TypeCode::Recursive_Type< TypeCodeBase, TypeCodeType, MemberArrayType >::tao_marshal_kind TAO_OutputCDR cdr  )  const [virtual]
 

template<class TypeCodeBase, typename TypeCodeType, typename MemberArrayType>
ACE_INLINE void TAO::TypeCode::Recursive_Type< TypeCodeBase, TypeCodeType, MemberArrayType >::union_parameters char const *  name,
TypeCodeType const &  discriminant_type,
MemberArrayType const &  cases,
CORBA::ULong  ncases,
CORBA::Long  default_index
 

Set union TypeCode parameters.

template<class TypeCodeBase, typename TypeCodeType, typename MemberArrayType>
ACE_INLINE void TAO::TypeCode::Recursive_Type< TypeCodeBase, TypeCodeType, MemberArrayType >::valuetype_parameters char const *  name,
CORBA::ValueModifier  modifier,
TypeCodeType const &  concrete_base,
MemberArrayType const &  fields,
CORBA::ULong  nfields
 

Set valuetype or eventtype TypeCode parameters.


Member Data Documentation

template<class TypeCodeBase, typename TypeCodeType, typename MemberArrayType>
bool TAO::TypeCode::Recursive_Type< TypeCodeBase, TypeCodeType, MemberArrayType >::in_recursion_ [mutable, private]
 

This flag is used to prevent TypeCode equality and equivalence operations from recursing indefinitely.

template<class TypeCodeBase, typename TypeCodeType, typename MemberArrayType>
TAO_SYNCH_RECURSIVE_MUTEX TAO::TypeCode::Recursive_Type< TypeCodeBase, TypeCodeType, MemberArrayType >::lock_ [mutable, private]
 

Internal state thread synchronization mutex.


The documentation for this class was generated from the following files:
Generated on Sun May 15 13:11:48 2005 for TAO by  doxygen 1.3.9.1