TAO_AnyTypeCode  2.1.8
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Classes | Public Member Functions | Private Attributes | List of all members
TAO::TypeCode::Recursive_Type< TypeCodeBase, TypeCodeType, MemberArrayType > Class Template Reference

Recursive type TypeCode decorator template. More...

#include <Recursive_Type_TypeCode.h>

Inheritance diagram for TAO::TypeCode::Recursive_Type< TypeCodeBase, TypeCodeType, MemberArrayType >:
Inheritance graph
Collaboration diagram for TAO::TypeCode::Recursive_Type< TypeCodeBase, TypeCodeType, MemberArrayType >:
Collaboration graph

Classes

class  Reset
 

Public Member Functions

 Recursive_Type (CORBA::TCKind kind, char const *id, char const *name, MemberArrayType const &fields, CORBA::ULong nfields)
 Recursive struct constructor. More...
 
 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. More...
 
 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. More...
 
 Recursive_Type (CORBA::TCKind kind, char const *id)
 Dynamic Recursive_Type TypeCode constructor. More...
 
bool struct_parameters (char const *name, MemberArrayType const &fields, CORBA::ULong nfields)
 Set struct TypeCode parameters. More...
 
bool union_parameters (char const *name, TypeCodeType const &discriminant_type, MemberArrayType const &cases, CORBA::ULong ncases, CORBA::Long default_index)
 Set union TypeCode parameters. More...
 
bool valuetype_parameters (char const *name, CORBA::ValueModifier modifier, TypeCodeType const &concrete_base, MemberArrayType const &fields, CORBA::ULong nfields)
 Set valuetype or eventtype TypeCode parameters. More...
 
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) const
 
virtual CORBA::Boolean equivalent_i (CORBA::TypeCode_ptr tc) const
 

Private Attributes

TAO_SYNCH_RECURSIVE_MUTEX lock_
 Internal state thread synchronization mutex. More...
 
CORBA::ULong recursion_start_offset_
 
bool data_initialized_
 Track whether data has been initialized. More...
 

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 >
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 >
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 >
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 >
TAO::TypeCode::Recursive_Type< TypeCodeBase, TypeCodeType, MemberArrayType >::Recursive_Type ( CORBA::TCKind  kind,
char const *  id 
)

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) const
protectedvirtual
template<class TypeCodeBase , typename TypeCodeType , typename MemberArrayType >
CORBA::Boolean TAO::TypeCode::Recursive_Type< TypeCodeBase, TypeCodeType, MemberArrayType >::equivalent_i ( CORBA::TypeCode_ptr  tc) const
protectedvirtual
template<class TypeCodeBase , typename TypeCodeType , typename MemberArrayType >
bool 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 >
bool 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 >
bool 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 >::data_initialized_
private

Track whether data has been initialized.

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

Internal state thread synchronization mutex.

template<class TypeCodeBase , typename TypeCodeType , typename MemberArrayType >
CORBA::ULong TAO::TypeCode::Recursive_Type< TypeCodeBase, TypeCodeType, MemberArrayType >::recursion_start_offset_
mutableprivate

true if equality or equivalence is being determined recursively. This flag is used to prevent TypeCode equality and equivalence operations from recursing indefinitely.


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