Recursive_Type_TypeCode.inl

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 //
00003 // $Id: Recursive_Type_TypeCode.inl 69182 2005-11-03 17:38:46Z ossama $
00004 
00005 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
00006 
00007 template <class TypeCodeBase, typename TypeCodeType, typename MemberArrayType>
00008 ACE_INLINE
00009 TAO::TypeCode::Recursive_Type<TypeCodeBase,
00010                               TypeCodeType,
00011                               MemberArrayType>::Recursive_Type (
00012   CORBA::TCKind kind,
00013   char const * id,
00014   char const * name,
00015   MemberArrayType const & fields,
00016   CORBA::ULong nfields)
00017   : TypeCodeBase (kind, id, name, fields, nfields)
00018   , lock_ ()
00019   , in_recursion_ (false)
00020 {
00021   // ACE_ASSERT (kind != CORBA::tk_except);
00022 }
00023 
00024 template <class TypeCodeBase, typename TypeCodeType, typename MemberArrayType>
00025 ACE_INLINE
00026 TAO::TypeCode::Recursive_Type<TypeCodeBase,
00027                               TypeCodeType,
00028                               MemberArrayType>::Recursive_Type (
00029   char const * id,
00030   char const * name,
00031 #if defined (__BORLANDC__) && (__BORLANDC__ < 0x572)
00032   TypeCodeType discriminant_type,
00033 #else
00034   TypeCodeType const & discriminant_type,
00035 #endif
00036   MemberArrayType const & cases,
00037   CORBA::ULong ncases,
00038   CORBA::Long default_index)
00039   : TypeCodeBase (id,
00040                   name,
00041                   discriminant_type,
00042                   cases,
00043                   ncases,
00044                   default_index)
00045   , lock_ ()
00046   , in_recursion_ (false)
00047 {
00048 }
00049 
00050 template <class TypeCodeBase, typename TypeCodeType, typename MemberArrayType>
00051 ACE_INLINE
00052 TAO::TypeCode::Recursive_Type<TypeCodeBase,
00053                               TypeCodeType,
00054                               MemberArrayType>::Recursive_Type (
00055   CORBA::TCKind kind,
00056   char const * id,
00057   char const * name,
00058   CORBA::ValueModifier modifier,
00059 #if defined (__BORLANDC__) && (__BORLANDC__ < 0x572)
00060   TypeCodeType concrete_base,
00061 #else
00062   TypeCodeType const & concrete_base,
00063 #endif
00064   MemberArrayType const & fields,
00065   CORBA::ULong nfields)
00066   : TypeCodeBase (kind,
00067                   id,
00068                   name,
00069                   modifier,
00070                   concrete_base,
00071                   fields,
00072                   nfields)
00073   , lock_ ()
00074   , in_recursion_ (false)
00075 {
00076 }
00077 
00078 template <class TypeCodeBase, typename TypeCodeType, typename MemberArrayType>
00079 ACE_INLINE
00080 TAO::TypeCode::Recursive_Type<TypeCodeBase,
00081                               TypeCodeType,
00082                               MemberArrayType>::Recursive_Type (
00083   CORBA::TCKind kind,
00084   char const * id)
00085   : TypeCodeBase (kind, id)
00086   , lock_ ()
00087   , in_recursion_ (false)
00088 {
00089 //   ACE_ASSERT (kind == CORBA::tk_struct
00090 //               || kind == CORBA::tk_union
00091 //               || kind == CORBA::tk_value
00092 //               || kind == CORBA::tk_event);
00093 }
00094 
00095 template <class TypeCodeBase, typename TypeCodeType, typename MemberArrayType>
00096 ACE_INLINE void
00097 TAO::TypeCode::Recursive_Type<TypeCodeBase,
00098                               TypeCodeType,
00099                               MemberArrayType>::struct_parameters (
00100   char const * name,
00101   MemberArrayType const & fields,
00102   CORBA::ULong nfields)
00103 {
00104   this->base_attributes_.name (name);
00105   this->fields_  = fields;
00106   this->nfields_ = nfields;
00107 }
00108 
00109 template <class TypeCodeBase, typename TypeCodeType, typename MemberArrayType>
00110 ACE_INLINE void
00111 TAO::TypeCode::Recursive_Type<TypeCodeBase,
00112                               TypeCodeType,
00113                               MemberArrayType>::union_parameters (
00114   char const * name,
00115 #if defined (__BORLANDC__) && (__BORLANDC__ < 0x572)
00116   TypeCodeType discriminant_type,
00117 #else
00118   TypeCodeType const & discriminant_type,
00119 #endif
00120   MemberArrayType const & cases,
00121   CORBA::ULong ncases,
00122   CORBA::Long default_index)
00123 {
00124   this->base_attributes_.name (name);
00125   this->discriminant_type_ = discriminant_type;
00126   this->cases_             = cases;
00127   this->ncases_            = ncases;
00128   this->default_index_     = default_index;
00129 }
00130 
00131 template <class TypeCodeBase, typename TypeCodeType, typename MemberArrayType>
00132 ACE_INLINE void
00133 TAO::TypeCode::Recursive_Type<TypeCodeBase,
00134                               TypeCodeType,
00135                               MemberArrayType>::valuetype_parameters (
00136   char const * name,
00137   CORBA::ValueModifier modifier,
00138 #if defined (__BORLANDC__) && (__BORLANDC__ < 0x572)
00139   TypeCodeType concrete_base,
00140 #else
00141   TypeCodeType const & concrete_base,
00142 #endif
00143   MemberArrayType const & fields,
00144   CORBA::ULong nfields)
00145 {
00146   this->base_attributes_.name (name);
00147   this->type_modifier_ = modifier;
00148   this->concrete_base_ = concrete_base;
00149   this->fields_        = fields;
00150   this->nfields_       = nfields;
00151 }
00152 
00153 TAO_END_VERSIONED_NAMESPACE_DECL

Generated on Sun Jan 27 13:21:06 2008 for TAO_AnyTypeCode by doxygen 1.3.6