diff options
-rw-r--r-- | TAO/ChangeLog | 19 | ||||
-rw-r--r-- | TAO/tao/DynamicAny/DynAnyFactory.cpp | 4 | ||||
-rw-r--r-- | TAO/tao/DynamicAny/DynAnyUtils_T.cpp | 164 | ||||
-rw-r--r-- | TAO/tao/DynamicAny/DynAnyUtils_T.h | 8 | ||||
-rw-r--r-- | TAO/tao/DynamicAny/DynAny_i.cpp | 4 | ||||
-rw-r--r-- | TAO/tao/DynamicAny/DynArray_i.cpp | 8 | ||||
-rw-r--r-- | TAO/tao/DynamicAny/DynCommon.cpp | 4 | ||||
-rw-r--r-- | TAO/tao/DynamicAny/DynSequence_i.cpp | 8 | ||||
-rw-r--r-- | TAO/tao/DynamicAny/DynStruct_i.cpp | 8 | ||||
-rw-r--r-- | TAO/tao/DynamicAny/DynUnion_i.cpp | 14 |
10 files changed, 131 insertions, 110 deletions
diff --git a/TAO/ChangeLog b/TAO/ChangeLog index eb8ccd29547..f68014e1509 100644 --- a/TAO/ChangeLog +++ b/TAO/ChangeLog @@ -1,3 +1,22 @@ +Thu Jan 11 18:42:33 UTC 2007 Jeff Parsons <j.parsons@vanderbilt.edu> + + * tao/DynamicAny/DynArray_i.cpp: + * tao/DynamicAny/DynCommon.cpp: + * tao/DynamicAny/DynAnyUtils_T.cpp: + * tao/DynamicAny/DynStruct_i.cpp: + * tao/DynamicAny/DynAny_i.cpp: + * tao/DynamicAny/DynUnion_i.cpp: + * tao/DynamicAny/DynAnyUtils_T.h: + * tao/DynamicAny/DynAnyFactory.cpp: + * tao/DynamicAny/DynSequence_i.cpp: + + Changed make_dyn_any_t() from a static method inside + a templatized struct to a template method inside a + namespace, and changed all usages accordingly. Thanks + to Ossama Othman <Ossama.Othman@symantec.com> for + the suggestion, which is an attempt to eliminate + Debian link errors in DynamicAny. + Thu Jan 11 17:13:56 UTC 2007 Phil Mesnier <mesnier_p@ociweb.com> * tests/Oneway_Timeouts/client.cpp: diff --git a/TAO/tao/DynamicAny/DynAnyFactory.cpp b/TAO/tao/DynamicAny/DynAnyFactory.cpp index 4910fc1a1a2..f9003b54193 100644 --- a/TAO/tao/DynamicAny/DynAnyFactory.cpp +++ b/TAO/tao/DynamicAny/DynAnyFactory.cpp @@ -45,7 +45,7 @@ TAO_DynAnyFactory::create_dyn_any ( )) { return - TAO::MakeDynAnyUtils<const CORBA::Any&>::make_dyn_any_t ( + TAO::MakeDynAnyUtils::make_dyn_any_t<const CORBA::Any&> ( value._tao_get_typecode (), value); } @@ -63,7 +63,7 @@ TAO_DynAnyFactory::create_dyn_any_from_type_code ( // Second arg is typed in the template parameter, repeating it // this way allows cleaner template code. return - TAO::MakeDynAnyUtils<CORBA::TypeCode_ptr>::make_dyn_any_t ( + TAO::MakeDynAnyUtils::make_dyn_any_t<CORBA::TypeCode_ptr> ( type, type); } 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 (); + } } } diff --git a/TAO/tao/DynamicAny/DynAnyUtils_T.h b/TAO/tao/DynamicAny/DynAnyUtils_T.h index a227be8538c..f91d18b9f25 100644 --- a/TAO/tao/DynamicAny/DynAnyUtils_T.h +++ b/TAO/tao/DynamicAny/DynAnyUtils_T.h @@ -79,12 +79,12 @@ namespace TAO // Code common to DynAnyFactory create_* calls, parameterized on // {Any | TypeCode}. - template<typename ANY_TC> - struct MakeDynAnyUtils + namespace MakeDynAnyUtils { - static DynamicAny::DynAny_ptr + template<typename ANY_TC> + DynamicAny::DynAny_ptr make_dyn_any_t (CORBA::TypeCode_ptr tc, ANY_TC any_tc); - }; + } } TAO_END_VERSIONED_NAMESPACE_DECL diff --git a/TAO/tao/DynamicAny/DynAny_i.cpp b/TAO/tao/DynamicAny/DynAny_i.cpp index 3cb5e9d8cbd..f37152f87ed 100644 --- a/TAO/tao/DynamicAny/DynAny_i.cpp +++ b/TAO/tao/DynamicAny/DynAny_i.cpp @@ -419,12 +419,12 @@ TAO_DynAny_i::equal (DynamicAny::DynAny_ptr rhs this->any_ >>= lhs_v; DynamicAny::DynAny_var rhs_dyn = - TAO::MakeDynAnyUtils<const CORBA::Any&>::make_dyn_any_t ( + TAO::MakeDynAnyUtils::make_dyn_any_t<const CORBA::Any&> ( rhs_v->_tao_get_typecode (), *rhs_v); DynamicAny::DynAny_var lhs_dyn = - TAO::MakeDynAnyUtils<const CORBA::Any&>::make_dyn_any_t ( + TAO::MakeDynAnyUtils::make_dyn_any_t<const CORBA::Any&> ( lhs_v->_tao_get_typecode (), *lhs_v); diff --git a/TAO/tao/DynamicAny/DynArray_i.cpp b/TAO/tao/DynamicAny/DynArray_i.cpp index 9c4c799e65f..e4883a8443f 100644 --- a/TAO/tao/DynamicAny/DynArray_i.cpp +++ b/TAO/tao/DynamicAny/DynArray_i.cpp @@ -96,7 +96,7 @@ TAO_DynArray_i::init (const CORBA::Any & any // This recursive step will call the correct constructor // based on the type of field_any. this->da_members_[i] = - TAO::MakeDynAnyUtils<const CORBA::Any&>::make_dyn_any_t ( + TAO::MakeDynAnyUtils::make_dyn_any_t<const CORBA::Any&> ( field_any._tao_get_typecode (), field_any); @@ -140,7 +140,7 @@ TAO_DynArray_i::init (CORBA::TypeCode_ptr tc { // Recursively initialize each element. this->da_members_[i] = - TAO::MakeDynAnyUtils<CORBA::TypeCode_ptr>::make_dyn_any_t ( + TAO::MakeDynAnyUtils::make_dyn_any_t<CORBA::TypeCode_ptr> ( elemtype.in (), elemtype.in ()); } @@ -291,7 +291,7 @@ TAO_DynArray_i::set_elements (const DynamicAny::AnySeq & value ACE_CHECK; this->da_members_[i] = - TAO::MakeDynAnyUtils<const CORBA::Any&>::make_dyn_any_t ( + TAO::MakeDynAnyUtils::make_dyn_any_t<const CORBA::Any&> ( value[i]._tao_get_typecode (), value[i]); } @@ -464,7 +464,7 @@ TAO_DynArray_i::from_any (const CORBA::Any& any ACE_CHECK; this->da_members_[i] = - TAO::MakeDynAnyUtils<const CORBA::Any&>::make_dyn_any_t ( + TAO::MakeDynAnyUtils::make_dyn_any_t<const CORBA::Any&> ( field_any._tao_get_typecode (), field_any); diff --git a/TAO/tao/DynamicAny/DynCommon.cpp b/TAO/tao/DynamicAny/DynCommon.cpp index 357820e8236..9f4cb8055bf 100644 --- a/TAO/tao/DynamicAny/DynCommon.cpp +++ b/TAO/tao/DynamicAny/DynCommon.cpp @@ -970,7 +970,7 @@ TAO_DynCommon::get_dyn_any (ACE_ENV_SINGLE_ARG_DECL) ACE_CHECK_RETURN (0); return - TAO::MakeDynAnyUtils<const CORBA::Any&>::make_dyn_any_t ( + TAO::MakeDynAnyUtils::make_dyn_any_t<const CORBA::Any&> ( any.in ()._tao_get_typecode (), any.in ()); } @@ -1127,7 +1127,7 @@ TAO_DynCommon::copy (ACE_ENV_SINGLE_ARG_DECL) ACE_CHECK_RETURN (DynamicAny::DynAny::_nil ()); DynamicAny::DynAny_ptr retval = - TAO::MakeDynAnyUtils<const CORBA::Any&>::make_dyn_any_t ( + TAO::MakeDynAnyUtils::make_dyn_any_t<const CORBA::Any&> ( any.in ()._tao_get_typecode (), any.in ()); diff --git a/TAO/tao/DynamicAny/DynSequence_i.cpp b/TAO/tao/DynamicAny/DynSequence_i.cpp index a18d518dae2..7d2dff85503 100644 --- a/TAO/tao/DynamicAny/DynSequence_i.cpp +++ b/TAO/tao/DynamicAny/DynSequence_i.cpp @@ -100,7 +100,7 @@ TAO_DynSequence_i::init (const CORBA::Any& any // This recursive step will call the correct constructor // based on the type of field_any. this->da_members_[i] = - TAO::MakeDynAnyUtils<const CORBA::Any&>::make_dyn_any_t ( + TAO::MakeDynAnyUtils::make_dyn_any_t<const CORBA::Any&> ( field_any._tao_get_typecode (), field_any); @@ -256,7 +256,7 @@ TAO_DynSequence_i::set_length (CORBA::ULong length for (CORBA::ULong i = this->component_count_; i < length; ++i) { this->da_members_[i] = - TAO::MakeDynAnyUtils<CORBA::TypeCode_ptr>::make_dyn_any_t ( + TAO::MakeDynAnyUtils::make_dyn_any_t<CORBA::TypeCode_ptr> ( elemtype.in (), elemtype.in ()); } @@ -383,7 +383,7 @@ TAO_DynSequence_i::set_elements (const DynamicAny::AnySeq & value } this->da_members_[i] = - TAO::MakeDynAnyUtils<const CORBA::Any&>::make_dyn_any_t ( + TAO::MakeDynAnyUtils::make_dyn_any_t<const CORBA::Any&> ( value[i]._tao_get_typecode (), value[i]); } @@ -614,7 +614,7 @@ TAO_DynSequence_i::from_any (const CORBA::Any & any } this->da_members_[i] = - TAO::MakeDynAnyUtils<const CORBA::Any&>::make_dyn_any_t ( + TAO::MakeDynAnyUtils::make_dyn_any_t<const CORBA::Any&> ( field_any._tao_get_typecode (), field_any); diff --git a/TAO/tao/DynamicAny/DynStruct_i.cpp b/TAO/tao/DynamicAny/DynStruct_i.cpp index 70e4b68f075..017ae3c8797 100644 --- a/TAO/tao/DynamicAny/DynStruct_i.cpp +++ b/TAO/tao/DynamicAny/DynStruct_i.cpp @@ -136,7 +136,7 @@ TAO_DynStruct_i::set_from_any (const CORBA::Any & any // This recursive step will call the correct constructor // based on the type of field_any. this->da_members_[i] = - TAO::MakeDynAnyUtils<const CORBA::Any&>::make_dyn_any_t ( + TAO::MakeDynAnyUtils::make_dyn_any_t<const CORBA::Any&> ( field_any._tao_get_typecode (), field_any); @@ -183,7 +183,7 @@ TAO_DynStruct_i::init (CORBA::TypeCode_ptr tc // Recursively initialize each member. this->da_members_[i] = - TAO::MakeDynAnyUtils<CORBA::TypeCode_ptr>::make_dyn_any_t ( + TAO::MakeDynAnyUtils::make_dyn_any_t<CORBA::TypeCode_ptr> ( mtype.in (), mtype.in ()); } @@ -402,7 +402,7 @@ TAO_DynStruct_i::set_members (const DynamicAny::NameValuePairSeq & values ACE_CHECK; this->da_members_[i] = - TAO::MakeDynAnyUtils<const CORBA::Any&>::make_dyn_any_t ( + TAO::MakeDynAnyUtils::make_dyn_any_t<const CORBA::Any&> ( values[i].value._tao_get_typecode (), values[i].value); } @@ -605,7 +605,7 @@ TAO_DynStruct_i::from_any (const CORBA::Any & any ACE_CHECK; this->da_members_[i] = - TAO::MakeDynAnyUtils<const CORBA::Any&>::make_dyn_any_t ( + TAO::MakeDynAnyUtils::make_dyn_any_t<const CORBA::Any&> ( field_any._tao_get_typecode (), field_any); diff --git a/TAO/tao/DynamicAny/DynUnion_i.cpp b/TAO/tao/DynamicAny/DynUnion_i.cpp index 2ac94000dd2..9f649f62e11 100644 --- a/TAO/tao/DynamicAny/DynUnion_i.cpp +++ b/TAO/tao/DynamicAny/DynUnion_i.cpp @@ -94,7 +94,7 @@ TAO_DynUnion_i::init (CORBA::TypeCode_ptr tc // Initialize the discriminator to the label value of the first member. this->discriminator_ = - TAO::MakeDynAnyUtils<const CORBA::Any&>::make_dyn_any_t ( + TAO::MakeDynAnyUtils::make_dyn_any_t<const CORBA::Any&> ( first_label.in ()._tao_get_typecode (), first_label.in ()); @@ -105,7 +105,7 @@ TAO_DynUnion_i::init (CORBA::TypeCode_ptr tc // Recursively initialize the member to its default value. this->member_ = - TAO::MakeDynAnyUtils<CORBA::TypeCode_ptr>::make_dyn_any_t ( + TAO::MakeDynAnyUtils::make_dyn_any_t<CORBA::TypeCode_ptr> ( first_type.in (), first_type.in ()); } @@ -185,7 +185,7 @@ TAO_DynUnion_i::set_from_any (const CORBA::Any & any // Set the discriminator. this->discriminator_ = - TAO::MakeDynAnyUtils<const CORBA::Any&>::make_dyn_any_t ( + TAO::MakeDynAnyUtils::make_dyn_any_t<const CORBA::Any&> ( disc_any._tao_get_typecode (), disc_any); @@ -247,7 +247,7 @@ TAO_DynUnion_i::set_from_any (const CORBA::Any & any member_any.replace (unk); this->member_ = - TAO::MakeDynAnyUtils<const CORBA::Any&>::make_dyn_any_t ( + TAO::MakeDynAnyUtils::make_dyn_any_t<const CORBA::Any&> ( member_any._tao_get_typecode (), member_any); @@ -290,7 +290,7 @@ TAO_DynUnion_i::set_from_any (const CORBA::Any & any default_any.replace (unk); this->member_ = - TAO::MakeDynAnyUtils<const CORBA::Any&>::make_dyn_any_t ( + TAO::MakeDynAnyUtils::make_dyn_any_t<const CORBA::Any&> ( default_any._tao_get_typecode (), default_any); @@ -411,7 +411,7 @@ TAO_DynUnion_i::set_discriminator (DynamicAny::DynAny_ptr value // Initialize member to default value. this->member_ = - TAO::MakeDynAnyUtils<CORBA::TypeCode_ptr>::make_dyn_any_t ( + TAO::MakeDynAnyUtils::make_dyn_any_t<CORBA::TypeCode_ptr> ( member_tc.in (), member_tc.in ()); @@ -499,7 +499,7 @@ TAO_DynUnion_i::set_to_default_member (ACE_ENV_SINGLE_ARG_DECL) ACE_CHECK; this->member_ = - TAO::MakeDynAnyUtils<CORBA::TypeCode_ptr>::make_dyn_any_t ( + TAO::MakeDynAnyUtils::make_dyn_any_t<CORBA::TypeCode_ptr> ( default_tc.in (), default_tc.in ()); |