summaryrefslogtreecommitdiff
path: root/TAO/tao/DynamicAny/DynAnyUtils_T.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/tao/DynamicAny/DynAnyUtils_T.cpp')
-rw-r--r--TAO/tao/DynamicAny/DynAnyUtils_T.cpp164
1 files changed, 83 insertions, 81 deletions
diff --git a/TAO/tao/DynamicAny/DynAnyUtils_T.cpp b/TAO/tao/DynamicAny/DynAnyUtils_T.cpp
index 291bb81591d..8f6af4e00ac 100644
--- a/TAO/tao/DynamicAny/DynAnyUtils_T.cpp
+++ b/TAO/tao/DynamicAny/DynAnyUtils_T.cpp
@@ -135,88 +135,90 @@ namespace TAO
return dp.release ();
}
- template<typename ANY_TC>
- DynamicAny::DynAny_ptr
- MakeDynAnyUtils<ANY_TC>::make_dyn_any_t (CORBA::TypeCode_ptr tc,
- ANY_TC any_tc)
+ namespace MakeDynAnyUtils
{
- switch (TAO_DynAnyFactory::unalias (tc))
- {
- case CORBA::tk_null:
- case CORBA::tk_void:
- case CORBA::tk_short:
- case CORBA::tk_long:
- case CORBA::tk_ushort:
- case CORBA::tk_ulong:
- case CORBA::tk_float:
- case CORBA::tk_double:
- case CORBA::tk_longlong:
- case CORBA::tk_ulonglong:
- case CORBA::tk_boolean:
- case CORBA::tk_char:
- case CORBA::tk_wchar:
- case CORBA::tk_octet:
- case CORBA::tk_any:
- case CORBA::tk_TypeCode:
- case CORBA::tk_objref:
- case CORBA::tk_string:
- case CORBA::tk_wstring:
- return
- CreateDynAnyUtils<
- TAO_DynAny_i,
- ANY_TC>::create_dyn_any_t (any_tc);
- case CORBA::tk_struct:
- case CORBA::tk_except:
- return
- CreateDynAnyUtils<
- TAO_DynStruct_i,
- ANY_TC>::create_dyn_any_t (any_tc);
- case CORBA::tk_sequence:
- if (TAO_DynCommon::is_basic_type_seq (tc))
- {
- return
- CreateDynAnyUtils<
- TAO_DynAny_i,
- ANY_TC>::create_dyn_any_t (any_tc);
- }
- else
- {
- return
- CreateDynAnyUtils<
- TAO_DynSequence_i,
- ANY_TC>::create_dyn_any_t (any_tc);
- }
- case CORBA::tk_union:
- return
- CreateDynAnyUtils<
- TAO_DynUnion_i,
- ANY_TC>::create_dyn_any_t (any_tc);
- case CORBA::tk_enum:
- return
- CreateDynAnyUtils<
- TAO_DynEnum_i,
- ANY_TC>::create_dyn_any_t (any_tc);
- case CORBA::tk_array:
- return
- CreateDynAnyUtils<
- TAO_DynArray_i,
- ANY_TC>::create_dyn_any_t (any_tc);
- case CORBA::tk_fixed:
- case CORBA::tk_value:
- case CORBA::tk_value_box:
- case CORBA::tk_abstract_interface:
- case CORBA::tk_component:
- case CORBA::tk_home:
- ACE_THROW_RETURN (CORBA::NO_IMPLEMENT (),
- DynamicAny::DynAny::_nil ());
- case CORBA::tk_native:
- ACE_THROW_RETURN (DynamicAny::DynAnyFactory::InconsistentTypeCode (),
- DynamicAny::DynAny::_nil ());
- default:
- break;
- }
-
- return DynamicAny::DynAny::_nil ();
+ template<typename ANY_TC>
+ DynamicAny::DynAny_ptr
+ make_dyn_any_t<ANY_TC> (CORBA::TypeCode_ptr tc, ANY_TC any_tc)
+ {
+ switch (TAO_DynAnyFactory::unalias (tc))
+ {
+ case CORBA::tk_null:
+ case CORBA::tk_void:
+ case CORBA::tk_short:
+ case CORBA::tk_long:
+ case CORBA::tk_ushort:
+ case CORBA::tk_ulong:
+ case CORBA::tk_float:
+ case CORBA::tk_double:
+ case CORBA::tk_longlong:
+ case CORBA::tk_ulonglong:
+ case CORBA::tk_boolean:
+ case CORBA::tk_char:
+ case CORBA::tk_wchar:
+ case CORBA::tk_octet:
+ case CORBA::tk_any:
+ case CORBA::tk_TypeCode:
+ case CORBA::tk_objref:
+ case CORBA::tk_string:
+ case CORBA::tk_wstring:
+ return
+ CreateDynAnyUtils<
+ TAO_DynAny_i,
+ ANY_TC>::create_dyn_any_t (any_tc);
+ case CORBA::tk_struct:
+ case CORBA::tk_except:
+ return
+ CreateDynAnyUtils<
+ TAO_DynStruct_i,
+ ANY_TC>::create_dyn_any_t (any_tc);
+ case CORBA::tk_sequence:
+ if (TAO_DynCommon::is_basic_type_seq (tc))
+ {
+ return
+ CreateDynAnyUtils<
+ TAO_DynAny_i,
+ ANY_TC>::create_dyn_any_t (any_tc);
+ }
+ else
+ {
+ return
+ CreateDynAnyUtils<
+ TAO_DynSequence_i,
+ ANY_TC>::create_dyn_any_t (any_tc);
+ }
+ case CORBA::tk_union:
+ return
+ CreateDynAnyUtils<
+ TAO_DynUnion_i,
+ ANY_TC>::create_dyn_any_t (any_tc);
+ case CORBA::tk_enum:
+ return
+ CreateDynAnyUtils<
+ TAO_DynEnum_i,
+ ANY_TC>::create_dyn_any_t (any_tc);
+ case CORBA::tk_array:
+ return
+ CreateDynAnyUtils<
+ TAO_DynArray_i,
+ ANY_TC>::create_dyn_any_t (any_tc);
+ case CORBA::tk_fixed:
+ case CORBA::tk_value:
+ case CORBA::tk_value_box:
+ case CORBA::tk_abstract_interface:
+ case CORBA::tk_component:
+ case CORBA::tk_home:
+ ACE_THROW_RETURN (CORBA::NO_IMPLEMENT (),
+ DynamicAny::DynAny::_nil ());
+ case CORBA::tk_native:
+ ACE_THROW_RETURN (DynamicAny::DynAnyFactory::InconsistentTypeCode (),
+ DynamicAny::DynAny::_nil ());
+ default:
+ break;
+ }
+
+ return DynamicAny::DynAny::_nil ();
+ }
}
}