Functions | |
template<typename ANY_TC> DynamicAny::DynAny_ptr | make_dyn_any_t (CORBA::TypeCode_ptr tc, ANY_TC any_tc) |
|
Definition at line 127 of file DynAnyUtils_T.cpp. References TAO_DynCommon::is_basic_type_seq(), and TAO_DynAnyFactory::unalias().
00128 { 00129 switch (TAO_DynAnyFactory::unalias (tc)) 00130 { 00131 case CORBA::tk_null: 00132 case CORBA::tk_void: 00133 case CORBA::tk_short: 00134 case CORBA::tk_long: 00135 case CORBA::tk_ushort: 00136 case CORBA::tk_ulong: 00137 case CORBA::tk_float: 00138 case CORBA::tk_double: 00139 case CORBA::tk_longlong: 00140 case CORBA::tk_ulonglong: 00141 case CORBA::tk_longdouble: 00142 case CORBA::tk_boolean: 00143 case CORBA::tk_char: 00144 case CORBA::tk_wchar: 00145 case CORBA::tk_octet: 00146 case CORBA::tk_any: 00147 case CORBA::tk_TypeCode: 00148 case CORBA::tk_objref: 00149 case CORBA::tk_string: 00150 case CORBA::tk_wstring: 00151 return 00152 CreateDynAnyUtils< 00153 TAO_DynAny_i, 00154 ANY_TC>::create_dyn_any_t (any_tc); 00155 case CORBA::tk_struct: 00156 case CORBA::tk_except: 00157 return 00158 CreateDynAnyUtils< 00159 TAO_DynStruct_i, 00160 ANY_TC>::create_dyn_any_t (any_tc); 00161 case CORBA::tk_sequence: 00162 if (TAO_DynCommon::is_basic_type_seq (tc)) 00163 { 00164 return 00165 CreateDynAnyUtils< 00166 TAO_DynAny_i, 00167 ANY_TC>::create_dyn_any_t (any_tc); 00168 } 00169 else 00170 { 00171 return 00172 CreateDynAnyUtils< 00173 TAO_DynSequence_i, 00174 ANY_TC>::create_dyn_any_t (any_tc); 00175 } 00176 case CORBA::tk_union: 00177 return 00178 CreateDynAnyUtils< 00179 TAO_DynUnion_i, 00180 ANY_TC>::create_dyn_any_t (any_tc); 00181 case CORBA::tk_enum: 00182 return 00183 CreateDynAnyUtils< 00184 TAO_DynEnum_i, 00185 ANY_TC>::create_dyn_any_t (any_tc); 00186 case CORBA::tk_array: 00187 return 00188 CreateDynAnyUtils< 00189 TAO_DynArray_i, 00190 ANY_TC>::create_dyn_any_t (any_tc); 00191 case CORBA::tk_fixed: 00192 case CORBA::tk_value: 00193 case CORBA::tk_value_box: 00194 case CORBA::tk_abstract_interface: 00195 case CORBA::tk_component: 00196 case CORBA::tk_home: 00197 throw ::CORBA::NO_IMPLEMENT (); 00198 case CORBA::tk_native: 00199 throw DynamicAny::DynAnyFactory::InconsistentTypeCode (); 00200 default: 00201 break; 00202 } 00203 00204 return DynamicAny::DynAny::_nil (); 00205 } |