diff options
Diffstat (limited to 'TAO/tao/DynamicAny/DynSequence_i.cpp')
-rw-r--r-- | TAO/tao/DynamicAny/DynSequence_i.cpp | 161 |
1 files changed, 46 insertions, 115 deletions
diff --git a/TAO/tao/DynamicAny/DynSequence_i.cpp b/TAO/tao/DynamicAny/DynSequence_i.cpp index 02ef4ec50bc..fcc700e0427 100644 --- a/TAO/tao/DynamicAny/DynSequence_i.cpp +++ b/TAO/tao/DynamicAny/DynSequence_i.cpp @@ -40,8 +40,7 @@ TAO_DynSequence_i::init (const CORBA::Any& any) { CORBA::TypeCode_var tc = any.type (); - CORBA::TCKind kind = - TAO_DynAnyFactory::unalias (tc.in ()); + CORBA::TCKind kind = TAO_DynAnyFactory::unalias (tc.in ()); if (kind != CORBA::tk_sequence) { @@ -58,9 +57,12 @@ TAO_DynSequence_i::init (const CORBA::Any& any) if (impl->encoded ()) { - TAO::Unknown_IDL_Type *unk = + TAO::Unknown_IDL_Type * const unk = dynamic_cast<TAO::Unknown_IDL_Type *> (impl); + if (!unk) + throw CORBA::INTERNAL (); + cdr = unk->_tao_get_cdr (); } else @@ -89,30 +91,24 @@ TAO_DynSequence_i::init (const CORBA::Any& any) TAO_InputCDR unk_in (cdr); TAO::Unknown_IDL_Type *field_unk = 0; ACE_NEW (field_unk, - TAO::Unknown_IDL_Type (field_tc.in (), - unk_in)); + TAO::Unknown_IDL_Type (field_tc.in (), unk_in)); field_any.replace (field_unk); // This recursive step will call the correct constructor // based on the type of field_any. this->da_members_[i] = TAO::MakeDynAnyUtils::make_dyn_any_t<const CORBA::Any&> ( - field_any._tao_get_typecode (), - field_any); + field_any._tao_get_typecode (), field_any); // Move to the next field in the CDR stream. - (void) TAO_Marshal_Object::perform_skip (field_tc.in (), - &cdr - ); + (void) TAO_Marshal_Object::perform_skip (field_tc.in (), &cdr); } } void -TAO_DynSequence_i::init (CORBA::TypeCode_ptr tc - ) +TAO_DynSequence_i::init (CORBA::TypeCode_ptr tc) { - CORBA::TCKind kind = TAO_DynAnyFactory::unalias (tc - ); + CORBA::TCKind kind = TAO_DynAnyFactory::unalias (tc); if (kind != CORBA::tk_sequence) { @@ -130,8 +126,7 @@ TAO_DynSequence_i::init (CORBA::TypeCode_ptr tc // **************************************************************** TAO_DynSequence_i * -TAO_DynSequence_i::_narrow (CORBA::Object_ptr _tao_objref - ) +TAO_DynSequence_i::_narrow (CORBA::Object_ptr _tao_objref) { if (CORBA::is_nil (_tao_objref)) { @@ -160,8 +155,7 @@ TAO_DynSequence_i::get_element_type (void) } // Return the content type. - CORBA::TypeCode_ptr retval = - element_type->content_type (); + CORBA::TypeCode_ptr retval = element_type->content_type (); return retval; } @@ -170,14 +164,10 @@ TAO_DynSequence_i::get_element_type (void) CORBA::ULong TAO_DynSequence_i::get_length (void) - ACE_THROW_SPEC (( - CORBA::SystemException - )) { if (this->destroyed_) { - ACE_THROW_RETURN (CORBA::OBJECT_NOT_EXIST (), - 0); + throw ::CORBA::OBJECT_NOT_EXIST (); } return this->component_count_; @@ -185,10 +175,6 @@ TAO_DynSequence_i::get_length (void) void TAO_DynSequence_i::set_length (CORBA::ULong length) - ACE_THROW_SPEC (( - CORBA::SystemException, - DynamicAny::DynAny::InvalidValue - )) { if (this->destroyed_) { @@ -197,8 +183,7 @@ TAO_DynSequence_i::set_length (CORBA::ULong length) // CORBA::TypeCode::length() does not accept aliased type codes. CORBA::TypeCode_var stripped_tc = - TAO_DynAnyFactory::strip_alias (this->type_.in () - ); + TAO_DynAnyFactory::strip_alias (this->type_.in ()); CORBA::ULong bound = stripped_tc->length (); @@ -264,14 +249,10 @@ TAO_DynSequence_i::set_length (CORBA::ULong length) DynamicAny::AnySeq * TAO_DynSequence_i::get_elements (void) - ACE_THROW_SPEC (( - CORBA::SystemException - )) { if (this->destroyed_) { - ACE_THROW_RETURN (CORBA::OBJECT_NOT_EXIST (), - 0); + throw ::CORBA::OBJECT_NOT_EXIST (); } CORBA::ULong length = static_cast<CORBA::ULong> (this->da_members_.size ()); @@ -299,11 +280,6 @@ TAO_DynSequence_i::get_elements (void) void TAO_DynSequence_i::set_elements (const DynamicAny::AnySeq & value) - ACE_THROW_SPEC (( - CORBA::SystemException, - DynamicAny::DynAny::TypeMismatch, - DynamicAny::DynAny::InvalidValue - )) { if (this->destroyed_) { @@ -311,8 +287,7 @@ TAO_DynSequence_i::set_elements (const DynamicAny::AnySeq & value) } CORBA::TypeCode_var stripped_tc = - TAO_DynAnyFactory::strip_alias (this->type_.in () - ); + TAO_DynAnyFactory::strip_alias (this->type_.in ()); CORBA::ULong length = value.length (); CORBA::ULong bound = stripped_tc->length (); @@ -338,8 +313,7 @@ TAO_DynSequence_i::set_elements (const DynamicAny::AnySeq & value) this->da_members_.size (length); } - CORBA::TypeCode_var element_type = - this->get_element_type (); + CORBA::TypeCode_var element_type = this->get_element_type (); CORBA::TypeCode_var value_tc; @@ -348,8 +322,7 @@ TAO_DynSequence_i::set_elements (const DynamicAny::AnySeq & value) // Check each arg element for type match. value_tc = value[i].type (); CORBA::Boolean equivalent = - value_tc->equivalent (element_type.in () - ); + value_tc->equivalent (element_type.in ()); if (equivalent) { @@ -388,14 +361,10 @@ TAO_DynSequence_i::set_elements (const DynamicAny::AnySeq & value) DynamicAny::DynAnySeq * TAO_DynSequence_i::get_elements_as_dyn_any (void) - ACE_THROW_SPEC (( - CORBA::SystemException - )) { if (this->destroyed_) { - ACE_THROW_RETURN (CORBA::OBJECT_NOT_EXIST (), - 0); + throw ::CORBA::OBJECT_NOT_EXIST (); } DynamicAny::DynAnySeq *retval = 0; @@ -410,9 +379,7 @@ TAO_DynSequence_i::get_elements_as_dyn_any (void) { // A deep copy is made only by copy() (CORBA 2.4.2 section 9.2.3.6). // Set the flag so the caller can't destroy. - this->set_flag (this->da_members_[i].in (), - 0 - ); + this->set_flag (this->da_members_[i].in (), 0); safe_retval[i] = DynamicAny::DynAny::_duplicate (this->da_members_[i].in ()); @@ -424,11 +391,6 @@ TAO_DynSequence_i::get_elements_as_dyn_any (void) void TAO_DynSequence_i::set_elements_as_dyn_any ( const DynamicAny::DynAnySeq & values) - ACE_THROW_SPEC (( - CORBA::SystemException, - DynamicAny::DynAny::TypeMismatch, - DynamicAny::DynAny::InvalidValue - )) { if (this->destroyed_) { @@ -436,8 +398,7 @@ TAO_DynSequence_i::set_elements_as_dyn_any ( } CORBA::TypeCode_var stripped_tc = - TAO_DynAnyFactory::strip_alias (this->type_.in () - ); + TAO_DynAnyFactory::strip_alias (this->type_.in ()); CORBA::ULong length = values.length (); CORBA::ULong bound = stripped_tc->length (); @@ -463,9 +424,7 @@ TAO_DynSequence_i::set_elements_as_dyn_any ( { val_type = values[i]->type (); - equivalent = val_type->equivalent (element_type.in () - ); - + equivalent = val_type->equivalent (element_type.in ()); if (equivalent) { @@ -504,11 +463,6 @@ TAO_DynSequence_i::set_elements_as_dyn_any ( void TAO_DynSequence_i::from_any (const CORBA::Any & any) - ACE_THROW_SPEC (( - CORBA::SystemException, - DynamicAny::DynAny::TypeMismatch, - DynamicAny::DynAny::InvalidValue - )) { if (this->destroyed_) { @@ -517,8 +471,7 @@ TAO_DynSequence_i::from_any (const CORBA::Any & any) CORBA::TypeCode_var tc = any.type (); CORBA::Boolean equivalent = - this->type_.in ()->equivalent (tc.in () - ); + this->type_.in ()->equivalent (tc.in ()); if (equivalent) { @@ -529,9 +482,12 @@ TAO_DynSequence_i::from_any (const CORBA::Any & any) if (impl->encoded ()) { - TAO::Unknown_IDL_Type *unk = + TAO::Unknown_IDL_Type * const unk = dynamic_cast<TAO::Unknown_IDL_Type *> (impl); + if (!unk) + throw CORBA::INTERNAL (); + cdr = unk->_tao_get_cdr (); } else @@ -578,9 +534,7 @@ TAO_DynSequence_i::from_any (const CORBA::Any & any) field_any); // Move to the next field in the CDR stream. - (void) TAO_Marshal_Object::perform_skip (field_tc.in (), - &cdr - ); + (void) TAO_Marshal_Object::perform_skip (field_tc.in (), &cdr); } // Destroy any dangling members. @@ -608,14 +562,10 @@ TAO_DynSequence_i::from_any (const CORBA::Any & any) CORBA::Any_ptr TAO_DynSequence_i::to_any (void) - ACE_THROW_SPEC (( - CORBA::SystemException - )) { if (this->destroyed_) { - ACE_THROW_RETURN (CORBA::OBJECT_NOT_EXIST (), - 0); + throw ::CORBA::OBJECT_NOT_EXIST (); } TAO_OutputCDR out_cdr; @@ -636,9 +586,12 @@ TAO_DynSequence_i::to_any (void) if (field_impl->encoded ()) { - TAO::Unknown_IDL_Type *field_unk = + TAO::Unknown_IDL_Type * const field_unk = dynamic_cast<TAO::Unknown_IDL_Type *> (field_impl); + if (!field_unk) + throw CORBA::INTERNAL (); + field_cdr = field_unk->_tao_get_cdr (); } else @@ -650,8 +603,7 @@ TAO_DynSequence_i::to_any (void) (void) TAO_Marshal_Object::perform_append (field_tc.in (), &field_cdr, - &out_cdr - ); + &out_cdr); } TAO_InputCDR in_cdr (out_cdr); @@ -673,29 +625,24 @@ TAO_DynSequence_i::to_any (void) CORBA::Boolean TAO_DynSequence_i::equal (DynamicAny::DynAny_ptr rhs) - ACE_THROW_SPEC (( - CORBA::SystemException - )) { if (this->destroyed_) { - ACE_THROW_RETURN (CORBA::OBJECT_NOT_EXIST (), - 0); + throw ::CORBA::OBJECT_NOT_EXIST (); } CORBA::TypeCode_var tc = rhs->type (); - CORBA::Boolean equivalent = tc->equivalent (this->type_.in () - ); + CORBA::Boolean equivalent = tc->equivalent (this->type_.in ()); if (!equivalent) { - return 0; + return false; } if (rhs->component_count () != this->component_count_) { - return 0; + return false; } DynamicAny::DynAny_var tmp; @@ -703,29 +650,24 @@ TAO_DynSequence_i::equal (DynamicAny::DynAny_ptr rhs) for (CORBA::ULong i = 0; i < this->component_count_; ++i) { - rhs->seek (static_cast<CORBA::Long> (i) - ); + rhs->seek (static_cast<CORBA::Long> (i)); tmp = rhs->current_component (); // Recursive step. - member_equal = tmp->equal (this->da_members_[i].in () - ); + member_equal = tmp->equal (this->da_members_[i].in ()); if (!member_equal) { - return 0; + return false; } } - return 1; + return true; } void TAO_DynSequence_i::destroy (void) - ACE_THROW_SPEC (( - CORBA::SystemException - )) { if (this->destroyed_) { @@ -737,9 +679,7 @@ TAO_DynSequence_i::destroy (void) // Do a deep destroy. for (CORBA::ULong i = 0; i < this->component_count_; ++i) { - this->set_flag (da_members_[i].in (), - 1 - ); + this->set_flag (da_members_[i].in (), 1); this->da_members_[i]->destroy (); } @@ -750,15 +690,10 @@ TAO_DynSequence_i::destroy (void) DynamicAny::DynAny_ptr TAO_DynSequence_i::current_component (void) - ACE_THROW_SPEC (( - CORBA::SystemException, - DynamicAny::DynAny::TypeMismatch - )) { if (this->destroyed_) { - ACE_THROW_RETURN (CORBA::OBJECT_NOT_EXIST (), - DynamicAny::DynAny::_nil ()); + throw ::CORBA::OBJECT_NOT_EXIST (); } if (this->current_position_ == -1) @@ -768,13 +703,9 @@ TAO_DynSequence_i::current_component (void) CORBA::ULong index = static_cast<CORBA::ULong> (this->current_position_); - this->set_flag (this->da_members_[index].in (), - 0 - ); + this->set_flag (this->da_members_[index].in (), 0); - return DynamicAny::DynAny::_duplicate ( - this->da_members_[index].in () - ); + return DynamicAny::DynAny::_duplicate (this->da_members_[index].in ()); } TAO_END_VERSIONED_NAMESPACE_DECL |