summaryrefslogtreecommitdiff
path: root/TAO/tao/DynamicAny/DynSequence_i.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/tao/DynamicAny/DynSequence_i.cpp')
-rw-r--r--TAO/tao/DynamicAny/DynSequence_i.cpp161
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