diff options
Diffstat (limited to 'TAO/tao/DynUnion_i.cpp')
-rw-r--r-- | TAO/tao/DynUnion_i.cpp | 1699 |
1 files changed, 512 insertions, 1187 deletions
diff --git a/TAO/tao/DynUnion_i.cpp b/TAO/tao/DynUnion_i.cpp index c241308ca64..c157d4da09b 100644 --- a/TAO/tao/DynUnion_i.cpp +++ b/TAO/tao/DynUnion_i.cpp @@ -24,71 +24,43 @@ TAO_DynUnion_i::TAO_DynUnion_i (const CORBA_Any& any) { - ACE_DECLARE_NEW_CORBA_ENV; - ACE_TRY - { - int tk = TAO_DynAny_i::unalias (any.type (), - ACE_TRY_ENV); - ACE_TRY_CHECK; - - if (tk == CORBA::tk_union) - { - // Initialize the typecode holder - this->type_ = any.type (); + CORBA::Environment env; - this->set_from_any (any, - ACE_TRY_ENV); - ACE_TRY_CHECK; - } - else - { - ACE_THROW (CORBA_ORB_InconsistentTypeCode ()); - } - } - ACE_CATCHANY + if (TAO_DynAny_i::unalias (any.type (), + env) + == CORBA::tk_union) { - // do nothing + // Initialize the typecode holder + this->type_ = any.type (); + + this->set_from_any (any, env); } - ACE_ENDTRY; - ACE_CHECK; + else + env.exception (new CORBA_ORB_InconsistentTypeCode); } TAO_DynUnion_i::TAO_DynUnion_i (CORBA_TypeCode_ptr tc) { - ACE_DECLARE_NEW_CORBA_ENV; - ACE_TRY - { - int tk = TAO_DynAny_i::unalias (tc, - ACE_TRY_ENV); - ACE_TRY_CHECK; + CORBA::Environment env; - if (tk == CORBA::tk_union) - { - // Initialize the typecode holder - this->type_ = CORBA::TypeCode::_duplicate (tc); + if (TAO_DynAny_i::unalias (tc, + env) + == CORBA::tk_union) + { + // Initialize the typecode holder + this->type_ = CORBA::TypeCode::_duplicate (tc); - CORBA::TypeCode_ptr disc_tc = tc->discriminator_type (ACE_TRY_ENV); - ACE_TRY_CHECK; + CORBA::TypeCode_ptr disc_tc = tc->discriminator_type (env); - // Get a typecode into the discriminator holder. - this->discriminator_ = TAO_DynAny_i::create_dyn_any (disc_tc, - ACE_TRY_ENV); - ACE_TRY_CHECK; + // Get a typecode into the discriminator holder. + this->discriminator_ = TAO_DynAny_i::create_dyn_any (disc_tc, + env); - // To be filled in by from_any() or assign(). - this->member_ = 0; - } - else - { - ACE_THROW (CORBA_ORB_InconsistentTypeCode ()); - } + // To be filled in by from_any() or assign(). + this->member_ = 0; } - ACE_CATCHANY - { - // do nothing - } - ACE_ENDTRY; - ACE_CHECK; + else + env.exception (new CORBA_ORB_InconsistentTypeCode); } TAO_DynUnion_i::~TAO_DynUnion_i (void) @@ -102,9 +74,9 @@ TAO_DynUnion_i::~TAO_DynUnion_i (void) // value, if one exists. CORBA::Boolean -TAO_DynUnion_i::set_as_default (CORBA::Environment& ACE_TRY_ENV) +TAO_DynUnion_i::set_as_default (CORBA::Environment& env) { - if ((CORBA::Long) this->current_index_ == this->type_->default_index (ACE_TRY_ENV)) + if ((CORBA::Long) this->current_index_ == this->type_->default_index (env)) return 1; else return 0; @@ -127,16 +99,10 @@ TAO_DynUnion_i::discriminator (CORBA::Environment &) } CORBA::TCKind -TAO_DynUnion_i::discriminator_kind (CORBA::Environment& ACE_TRY_ENV) +TAO_DynUnion_i::discriminator_kind (CORBA::Environment& env) { - CORBA_TypeCode_ptr tc = this->type_->discriminator_type (ACE_TRY_ENV); - ACE_CHECK_RETURN (CORBA::tk_null); - - CORBA::TCKind retval = TAO_DynAny_i::unalias (tc, - ACE_TRY_ENV); - ACE_CHECK_RETURN (CORBA::tk_null); - - return retval; + return TAO_DynAny_i::unalias (this->type_->discriminator_type (env), + env); } CORBA_DynAny_ptr @@ -146,13 +112,10 @@ TAO_DynUnion_i::member (CORBA::Environment &) } char* -TAO_DynUnion_i::member_name (CORBA::Environment& ACE_TRY_ENV) +TAO_DynUnion_i::member_name (CORBA::Environment& env) { - const char *retval = this->type_->member_name (this->current_index_, - ACE_TRY_ENV); - ACE_CHECK_RETURN (0); - - return CORBA::string_dup (retval); + return CORBA::string_dup (this->type_->member_name (this->current_index_, + env)); } // If a valid member name is supplied, this function creates a new @@ -160,50 +123,33 @@ TAO_DynUnion_i::member_name (CORBA::Environment& ACE_TRY_ENV) void TAO_DynUnion_i::member_name (const char* member_name, - CORBA::Environment& ACE_TRY_ENV) + CORBA::Environment& env) { CORBA::ULong count = - this->type_->member_count (ACE_TRY_ENV); + this->type_->member_count (env); for (CORBA::ULong i = 0; i < count; i++) { - const char *temp = this->type_->member_name (i, - ACE_TRY_ENV); - ACE_CHECK; - - if (!ACE_OS::strcmp (member_name, - temp)) + if (!ACE_OS::strcmp (member_name, + this->type_->member_name (i, + env))) { // No sense doing anything if we're just "resetting" to the // current member. if (i == this->current_index_) - { - return; - } + return; else { - CORBA_TypeCode_ptr member_type = - this->type_->member_type (i, - ACE_TRY_ENV); - ACE_CHECK; - this->member_ = - TAO_DynAny_i::create_dyn_any (member_type, - ACE_TRY_ENV); - ACE_CHECK; - - CORBA_Any_ptr disc_any = - this->type_->member_label (i, - ACE_TRY_ENV); - ACE_CHECK; - + TAO_DynAny_i::create_dyn_any (this->type_->member_type (i, + env), + env); this->discriminator_ = - TAO_DynAny_i::create_dyn_any (*disc_any, - ACE_TRY_ENV); - ACE_CHECK; - + TAO_DynAny_i::create_dyn_any (*this->type_->member_label (i, + env), + env); this->current_index_ = i; return; } @@ -212,71 +158,42 @@ TAO_DynUnion_i::member_name (const char* member_name, } CORBA::TCKind -TAO_DynUnion_i::member_kind (CORBA::Environment& ACE_TRY_ENV) +TAO_DynUnion_i::member_kind (CORBA::Environment& env) { - CORBA_TypeCode_ptr tc = this->type_->member_type (this->current_index_, - ACE_TRY_ENV); - ACE_CHECK_RETURN (CORBA::tk_null); - - CORBA::TCKind retval = TAO_DynAny_i::unalias (tc, - ACE_TRY_ENV); - ACE_CHECK_RETURN (CORBA::tk_null); - - return retval; + return TAO_DynAny_i::unalias (this->type_->member_type (this->current_index_, + env), + env); } // Common functions void TAO_DynUnion_i::assign (CORBA_DynAny_ptr dyn_any, - CORBA::Environment &ACE_TRY_ENV) + CORBA::Environment &env) { // *dyn_any->to_any raises Invalid if arg is bad. - CORBA_TypeCode_ptr tc = dyn_any->type (ACE_TRY_ENV); - ACE_CHECK; - - CORBA::Boolean equal = this->type_->equal (tc, - ACE_TRY_ENV); - ACE_CHECK; - - if (equal) - { - CORBA_Any_ptr any_ptr = dyn_any->to_any (ACE_TRY_ENV); - ACE_CHECK; - - this->from_any (*any_ptr, - ACE_TRY_ENV); - ACE_CHECK; - } + if (this->type_->equal (dyn_any->type (env), + env)) + this->from_any (*dyn_any->to_any (env), + env); else - { - ACE_THROW (CORBA_DynAny::Invalid ()); - } + env.exception (new CORBA_DynAny::Invalid); } CORBA_DynAny_ptr -TAO_DynUnion_i::copy (CORBA::Environment &ACE_TRY_ENV) +TAO_DynUnion_i::copy (CORBA::Environment &env) { - CORBA_Any_ptr a = this->to_any (ACE_TRY_ENV); - ACE_CHECK_RETURN (CORBA_DynAny::_nil ()); - - CORBA_DynAny_ptr retval = - TAO_DynAny_i::create_dyn_any (*a, - ACE_TRY_ENV); - ACE_CHECK_RETURN (CORBA_DynAny::_nil ()); - - return retval; + CORBA_Any_ptr a = this->to_any (env); + return TAO_DynAny_i::create_dyn_any (*a, + env); } void -TAO_DynUnion_i::destroy (CORBA::Environment &ACE_TRY_ENV) +TAO_DynUnion_i::destroy (CORBA::Environment &env) { // Free the two DynAnys. - this->member_->destroy (ACE_TRY_ENV); - ACE_CHECK; - - this->discriminator_->destroy (ACE_TRY_ENV); - ACE_CHECK; + this->member_->destroy (env); + this->discriminator_->destroy (env); // Free the top level delete this; @@ -284,33 +201,25 @@ TAO_DynUnion_i::destroy (CORBA::Environment &ACE_TRY_ENV) void TAO_DynUnion_i::from_any (const CORBA_Any& any, - CORBA::Environment &ACE_TRY_ENV) + CORBA::Environment &env) { - CORBA::Boolean equal = this->type_.in ()->equal (any.type (), - ACE_TRY_ENV); - ACE_CHECK; - - if (equal) - { - this->set_from_any (any, - ACE_TRY_ENV); - ACE_CHECK; - } + if (this->type_.in ()->equal (any.type (), + env)) + this->set_from_any (any, + env); else - { - ACE_THROW (CORBA_DynAny::Invalid ()); - } + env.exception (new CORBA_DynAny::Invalid); } CORBA::Any_ptr TAO_DynUnion_i::to_any (CORBA::Environment& ACE_TRY_ENV) { // Both Dynanys must have been initialied. - if (this->member_.in () == 0 + if (this->member_.in () == 0 || this->discriminator_.in () == 0) { - ACE_THROW_RETURN (CORBA_DynAny::Invalid (), - 0); + ACE_TRY_ENV.exception (new CORBA_DynAny::Invalid); + return 0; } TAO_OutputCDR out_cdr; @@ -319,13 +228,11 @@ TAO_DynUnion_i::to_any (CORBA::Environment& ACE_TRY_ENV) CORBA_TypeCode_ptr disc_tc = this->discriminator_->type (ACE_TRY_ENV); - ACE_CHECK_RETURN (0); CORBA_Any_var disc_any = this->discriminator_->to_any (ACE_TRY_ENV); - ACE_CHECK_RETURN (0); - ACE_Message_Block *disc_mb = + ACE_Message_Block *disc_mb = disc_any->_tao_get_cdr (); TAO_InputCDR disc_cdr (disc_mb); @@ -333,17 +240,14 @@ TAO_DynUnion_i::to_any (CORBA::Environment& ACE_TRY_ENV) out_cdr.append (disc_tc, &disc_cdr, ACE_TRY_ENV); - ACE_CHECK_RETURN (0); // Add the member to the CDR stream. CORBA_TypeCode_ptr member_tc = this->member_->type (ACE_TRY_ENV); - ACE_CHECK_RETURN (0); CORBA_Any_var member_any = this->member_->to_any (ACE_TRY_ENV); - ACE_CHECK_RETURN (0); ACE_Message_Block *member_mb = member_any->_tao_get_cdr (); @@ -353,22 +257,17 @@ TAO_DynUnion_i::to_any (CORBA::Environment& ACE_TRY_ENV) out_cdr.append (member_tc, &member_cdr, ACE_TRY_ENV); - ACE_CHECK_RETURN (0); // Make the Any. TAO_InputCDR in_cdr (out_cdr); CORBA_Any *retval; - CORBA_TypeCode_ptr tc = this->type (ACE_TRY_ENV); - ACE_CHECK_RETURN (0); - ACE_NEW_THROW_EX (retval, - CORBA_Any (tc, + CORBA_Any (this->type (ACE_TRY_ENV), 0, in_cdr.start ()), CORBA::NO_MEMORY ()); ACE_CHECK_RETURN (0); - return retval; } @@ -385,70 +284,45 @@ TAO_DynUnion_i::current_component (CORBA::Environment &) } CORBA::Boolean -TAO_DynUnion_i::next (CORBA::Environment &ACE_TRY_ENV) +TAO_DynUnion_i::next (CORBA::Environment &env) { - CORBA::ULong count = this->type_->member_count (ACE_TRY_ENV); - ACE_CHECK_RETURN (0); - - if (this->current_index_ + 1 == count) - { - return 0; - } + if (this->current_index_ + 1 == this->type_->member_count (env)) + return 0; ++this->current_index_; if (!CORBA::is_nil (this->member_.in ())) - { - this->member_->destroy (ACE_TRY_ENV); - ACE_CHECK_RETURN (0); - } - - CORBA_TypeCode_ptr tc = this->type_->member_type (this->current_index_, - ACE_TRY_ENV); - ACE_CHECK_RETURN (0); + this->member_->destroy (env); this->member_ = - TAO_DynAny_i::create_dyn_any (tc, - ACE_TRY_ENV); - ACE_CHECK_RETURN (0); - + TAO_DynAny_i::create_dyn_any (this->type_->member_type (this->current_index_, + env), + env); return 1; } CORBA::Boolean TAO_DynUnion_i::seek (CORBA::Long slot, - CORBA::Environment &ACE_TRY_ENV) + CORBA::Environment &env) { - CORBA::ULong count = this->type_->member_count (ACE_TRY_ENV); - ACE_CHECK_RETURN (0); - - if (slot < 0 || slot >= (CORBA::Long) count) - { - return 0; - } + if (slot < 0 + || slot >= (CORBA::Long) this->type_->member_count (env)) + return 0; this->current_index_ = slot; if (!CORBA::is_nil (this->member_.in ())) - { - this->member_->destroy (ACE_TRY_ENV); - ACE_CHECK_RETURN (0); - } - - CORBA_TypeCode_ptr tc = this->type_->member_type (this->current_index_, - ACE_TRY_ENV); - ACE_CHECK_RETURN (0); + this->member_->destroy (env); this->member_ = - TAO_DynAny_i::create_dyn_any (tc, - ACE_TRY_ENV); - ACE_CHECK_RETURN (0); - + TAO_DynAny_i::create_dyn_any (this->type_->member_type (this->current_index_, + env), + env); return 1; } void -TAO_DynUnion_i::rewind (CORBA::Environment &ACE_TRY_ENV) +TAO_DynUnion_i::rewind (CORBA::Environment &env) { if (this->current_index_ == 0) return; @@ -456,19 +330,12 @@ TAO_DynUnion_i::rewind (CORBA::Environment &ACE_TRY_ENV) this->current_index_ = 0; if (!CORBA::is_nil (this->member_.in ())) - { - this->member_->destroy (ACE_TRY_ENV); - ACE_CHECK; - } - - CORBA_TypeCode_ptr tc = this->type_->member_type (this->current_index_, - ACE_TRY_ENV); - ACE_CHECK; + this->member_->destroy (env); this->member_ = - TAO_DynAny_i::create_dyn_any (tc, - ACE_TRY_ENV); - ACE_CHECK; + TAO_DynAny_i::create_dyn_any (this->type_->member_type (this->current_index_, + env), + env); } // Insert and get functions @@ -481,26 +348,17 @@ TAO_DynUnion_i::rewind (CORBA::Environment &ACE_TRY_ENV) void TAO_DynUnion_i::insert_boolean (CORBA::Boolean value, - CORBA::Environment &ACE_TRY_ENV) + CORBA::Environment &env) { - CORBA_TypeCode_ptr type = this->member_->type (ACE_TRY_ENV); - ACE_CHECK; - - CORBA::TCKind kind = TAO_DynAny_i::unalias (type, - ACE_TRY_ENV); - ACE_CHECK; - - if (kind == CORBA::tk_boolean) - { - this->member_->insert_boolean (value, - ACE_TRY_ENV); - ACE_CHECK; - } + if (TAO_DynAny_i::unalias (this->member_->type (env), + env) + == CORBA::tk_boolean) + this->member_->insert_boolean (value, + env); else { CORBA::ULong count = - this->type_->member_count (ACE_TRY_ENV); - ACE_CHECK; + this->type_->member_count (env); for (CORBA::ULong i = 0; i < count; @@ -508,64 +366,43 @@ TAO_DynUnion_i::insert_boolean (CORBA::Boolean value, { CORBA::TypeCode_ptr tc = this->type_->member_type (i, - ACE_TRY_ENV); - ACE_CHECK; + env); - CORBA::TCKind try_kind = TAO_DynAny_i::unalias (tc, - ACE_TRY_ENV); - ACE_CHECK; - - if (try_kind == CORBA::tk_boolean) + if (TAO_DynAny_i::unalias (tc, + env) + == CORBA::tk_boolean) { this->member_ = TAO_DynAny_i::create_dyn_any (tc, - ACE_TRY_ENV); - ACE_CHECK; - + env); this->member_->insert_boolean (value, - ACE_TRY_ENV); - ACE_CHECK; - - CORBA_Any_ptr any_ptr = this->type_->member_label (i, - ACE_TRY_ENV); - ACE_CHECK; - + env); this->discriminator_ = - TAO_DynAny_i::create_dyn_any (*any_ptr, - ACE_TRY_ENV); - ACE_CHECK; - + TAO_DynAny_i::create_dyn_any (*this->type_->member_label (i, + env), + env); this->current_index_ = i; return; } } - ACE_THROW (CORBA_DynAny::InvalidValue ()); + env.exception (new CORBA_DynAny::InvalidValue); } } void TAO_DynUnion_i::insert_octet (CORBA::Octet value, - CORBA::Environment &ACE_TRY_ENV) + CORBA::Environment &env) { - CORBA_TypeCode_ptr type = this->member_->type (ACE_TRY_ENV); - ACE_CHECK; - - CORBA::TCKind kind = TAO_DynAny_i::unalias (type, - ACE_TRY_ENV); - ACE_CHECK; - - if (kind == CORBA::tk_octet) - { - this->member_->insert_octet (value, - ACE_TRY_ENV); - ACE_CHECK; - } + if (TAO_DynAny_i::unalias (this->member_->type (env), + env) + == CORBA::tk_octet) + this->member_->insert_octet (value, + env); else { CORBA::ULong count = - this->type_->member_count (ACE_TRY_ENV); - ACE_CHECK; + this->type_->member_count (env); for (CORBA::ULong i = 0; i < count; @@ -573,64 +410,43 @@ TAO_DynUnion_i::insert_octet (CORBA::Octet value, { CORBA::TypeCode_ptr tc = this->type_->member_type (i, - ACE_TRY_ENV); - ACE_CHECK; + env); - CORBA::TCKind try_kind = TAO_DynAny_i::unalias (tc, - ACE_TRY_ENV); - ACE_CHECK; - - if (try_kind == CORBA::tk_octet) + if (TAO_DynAny_i::unalias (tc, + env) + == CORBA::tk_octet) { this->member_ = TAO_DynAny_i::create_dyn_any (tc, - ACE_TRY_ENV); - ACE_CHECK; - + env); this->member_->insert_octet (value, - ACE_TRY_ENV); - ACE_CHECK; - - CORBA_Any_ptr any_ptr = this->type_->member_label (i, - ACE_TRY_ENV); - ACE_CHECK; - + env); this->discriminator_ = - TAO_DynAny_i::create_dyn_any (*any_ptr, - ACE_TRY_ENV); - ACE_CHECK; - + TAO_DynAny_i::create_dyn_any (*this->type_->member_label (i, + env), + env); this->current_index_ = i; return; } } - ACE_THROW (CORBA_DynAny::InvalidValue ()); + env.exception (new CORBA_DynAny::InvalidValue); } } void TAO_DynUnion_i::insert_char (CORBA::Char value, - CORBA::Environment &ACE_TRY_ENV) + CORBA::Environment &env) { - CORBA_TypeCode_ptr type = this->member_->type (ACE_TRY_ENV); - ACE_CHECK; - - CORBA::TCKind kind = TAO_DynAny_i::unalias (type, - ACE_TRY_ENV); - ACE_CHECK; - - if (kind == CORBA::tk_char) - { - this->member_->insert_char (value, - ACE_TRY_ENV); - ACE_CHECK; - } + if (TAO_DynAny_i::unalias (this->member_->type (env), + env) + == CORBA::tk_char) + this->member_->insert_char (value, + env); else { CORBA::ULong count = - this->type_->member_count (ACE_TRY_ENV); - ACE_CHECK; + this->type_->member_count (env); for (CORBA::ULong i = 0; i < count; @@ -638,64 +454,42 @@ TAO_DynUnion_i::insert_char (CORBA::Char value, { CORBA::TypeCode_ptr tc = this->type_->member_type (i, - ACE_TRY_ENV); - ACE_CHECK; + env); - CORBA::TCKind try_kind = TAO_DynAny_i::unalias (tc, - ACE_TRY_ENV); - ACE_CHECK; - - if (try_kind == CORBA::tk_char) + if (TAO_DynAny_i::unalias (tc, + env) + == CORBA::tk_char) { this->member_ = TAO_DynAny_i::create_dyn_any (tc, - ACE_TRY_ENV); - ACE_CHECK; - + env); this->member_->insert_char (value, - ACE_TRY_ENV); - ACE_CHECK; - - CORBA_Any_ptr any_ptr = this->type_->member_label (i, - ACE_TRY_ENV); - ACE_CHECK; - + env); this->discriminator_ = - TAO_DynAny_i::create_dyn_any (*any_ptr, - ACE_TRY_ENV); - ACE_CHECK; - + TAO_DynAny_i::create_dyn_any (*this->type_->member_label (i, + env), + env); this->current_index_ = i; return; } } - ACE_THROW (CORBA_DynAny::InvalidValue ()); + env.exception (new CORBA_DynAny::InvalidValue); } } void TAO_DynUnion_i::insert_short (CORBA::Short value, - CORBA::Environment &ACE_TRY_ENV) + CORBA::Environment &env) { - CORBA_TypeCode_ptr type = this->member_->type (ACE_TRY_ENV); - ACE_CHECK; - - CORBA::TCKind kind = TAO_DynAny_i::unalias (type, - ACE_TRY_ENV); - ACE_CHECK; - - if (kind == CORBA::tk_short) - { - this->member_->insert_short (value, - ACE_TRY_ENV); - ACE_CHECK; - } + if (TAO_DynAny_i::unalias (this->member_->type (env), + env) + == CORBA::tk_short) + this->member_->insert_short (value, env); else { CORBA::ULong count = - this->type_->member_count (ACE_TRY_ENV); - ACE_CHECK; + this->type_->member_count (env); for (CORBA::ULong i = 0; i < count; @@ -703,64 +497,42 @@ TAO_DynUnion_i::insert_short (CORBA::Short value, { CORBA::TypeCode_ptr tc = this->type_->member_type (i, - ACE_TRY_ENV); - ACE_CHECK; - - CORBA::TCKind try_kind = TAO_DynAny_i::unalias (tc, - ACE_TRY_ENV); - ACE_CHECK; - - if (try_kind == CORBA::tk_short) + env); + if (TAO_DynAny_i::unalias (tc, + env) + == CORBA::tk_short) { this->member_ = TAO_DynAny_i::create_dyn_any (tc, - ACE_TRY_ENV); - ACE_CHECK; - + env); this->member_->insert_short (value, - ACE_TRY_ENV); - ACE_CHECK; - - CORBA_Any_ptr any_ptr = this->type_->member_label (i, - ACE_TRY_ENV); - ACE_CHECK; - + env); this->discriminator_ = - TAO_DynAny_i::create_dyn_any (*any_ptr, - ACE_TRY_ENV); - ACE_CHECK; - + TAO_DynAny_i::create_dyn_any (*this->type_->member_label (i, + env), + env); this->current_index_ = i; return; } } - ACE_THROW (CORBA_DynAny::InvalidValue ()); + env.exception (new CORBA_DynAny::InvalidValue); } } void TAO_DynUnion_i::insert_long (CORBA::Long value, - CORBA::Environment &ACE_TRY_ENV) + CORBA::Environment &env) { - CORBA_TypeCode_ptr type = this->member_->type (ACE_TRY_ENV); - ACE_CHECK; - - CORBA::TCKind kind = TAO_DynAny_i::unalias (type, - ACE_TRY_ENV); - ACE_CHECK; - - if (kind == CORBA::tk_long) - { - this->member_->insert_long (value, - ACE_TRY_ENV); - ACE_CHECK; - } + if (TAO_DynAny_i::unalias (this->member_->type (env), + env) + == CORBA::tk_long) + this->member_->insert_long (value, + env); else { CORBA::ULong count = - this->type_->member_count (ACE_TRY_ENV); - ACE_CHECK; + this->type_->member_count (env); for (CORBA::ULong i = 0; i < count; @@ -768,129 +540,86 @@ TAO_DynUnion_i::insert_long (CORBA::Long value, { CORBA::TypeCode_ptr tc = this->type_->member_type (i, - ACE_TRY_ENV); - ACE_CHECK; - - CORBA::TCKind try_kind = TAO_DynAny_i::unalias (tc, - ACE_TRY_ENV); - ACE_CHECK; + env); - if (try_kind == CORBA::tk_long) + if (TAO_DynAny_i::unalias (tc, + env) + == CORBA::tk_long) { this->member_ = TAO_DynAny_i::create_dyn_any (tc, - ACE_TRY_ENV); - ACE_CHECK; - + env); this->member_->insert_long (value, - ACE_TRY_ENV); - ACE_CHECK; - - CORBA_Any_ptr any_ptr = this->type_->member_label (i, - ACE_TRY_ENV); - ACE_CHECK; - + env); this->discriminator_ = - TAO_DynAny_i::create_dyn_any (*any_ptr, - ACE_TRY_ENV); - ACE_CHECK; - + TAO_DynAny_i::create_dyn_any (*this->type_->member_label (i, + env), + env); this->current_index_ = i; return; } } - ACE_THROW (CORBA_DynAny::InvalidValue ()); + env.exception (new CORBA_DynAny::InvalidValue); } } void TAO_DynUnion_i::insert_ushort (CORBA::UShort value, - CORBA::Environment &ACE_TRY_ENV) + CORBA::Environment &env) { - CORBA_TypeCode_ptr type = this->member_->type (ACE_TRY_ENV); - ACE_CHECK; - - CORBA::TCKind kind = TAO_DynAny_i::unalias (type, - ACE_TRY_ENV); - ACE_CHECK; - - if (kind == CORBA::tk_ushort) - { - this->member_->insert_ushort (value, - ACE_TRY_ENV); - ACE_CHECK; - } + if (TAO_DynAny_i::unalias (this->member_->type (env), + env) + == CORBA::tk_ushort) + this->member_->insert_ushort (value, + env); else { CORBA::ULong count = - this->type_->member_count (ACE_TRY_ENV); - ACE_CHECK; + this->type_->member_count (env); for (CORBA::ULong i = 0; i < count; i++) { - CORBA::TypeCode_ptr tc = - this->type_->member_type (i, - ACE_TRY_ENV); - ACE_CHECK; + CORBA::TypeCode_ptr tc = this->type_->member_type (i, + env); - CORBA::TCKind try_kind = TAO_DynAny_i::unalias (tc, - ACE_TRY_ENV); - ACE_CHECK; - - if (try_kind == CORBA::tk_ushort) + if (TAO_DynAny_i::unalias (tc, + env) + == CORBA::tk_ushort) { this->member_ = TAO_DynAny_i::create_dyn_any (tc, - ACE_TRY_ENV); - ACE_CHECK; - + env); this->member_->insert_ushort (value, - ACE_TRY_ENV); - ACE_CHECK; - - CORBA_Any_ptr any_ptr = this->type_->member_label (i, - ACE_TRY_ENV); - ACE_CHECK; - + env); this->discriminator_ = - TAO_DynAny_i::create_dyn_any (*any_ptr, - ACE_TRY_ENV); - ACE_CHECK; - + TAO_DynAny_i::create_dyn_any (*this->type_->member_label (i, + env), + env); this->current_index_ = i; return; } } - ACE_THROW (CORBA_DynAny::InvalidValue ()); + env.exception (new CORBA_DynAny::InvalidValue); } } void TAO_DynUnion_i::insert_ulong (CORBA::ULong value, - CORBA::Environment &ACE_TRY_ENV) + CORBA::Environment &env) { - CORBA_TypeCode_ptr type = this->member_->type (ACE_TRY_ENV); - ACE_CHECK; - - CORBA::TCKind kind = TAO_DynAny_i::unalias (type, - ACE_TRY_ENV); - ACE_CHECK; - - if (kind == CORBA::tk_ulong) - { - this->member_->insert_ulong (value, - ACE_TRY_ENV); - ACE_CHECK; - } + if (TAO_DynAny_i::unalias (this->member_->type (env), + env) + == CORBA::tk_ulong) + this->member_->insert_ulong (value, + env); else { CORBA::ULong count = - this->type_->member_count (ACE_TRY_ENV); - ACE_CHECK; + this->type_->member_count (env); for (CORBA::ULong i = 0; i < count; @@ -898,64 +627,43 @@ TAO_DynUnion_i::insert_ulong (CORBA::ULong value, { CORBA::TypeCode_ptr tc = this->type_->member_type (i, - ACE_TRY_ENV); - ACE_CHECK; + env); - CORBA::TCKind try_kind = TAO_DynAny_i::unalias (tc, - ACE_TRY_ENV); - ACE_CHECK; - - if (try_kind == CORBA::tk_ulong) + if (TAO_DynAny_i::unalias (tc, + env) + == CORBA::tk_ulong) { this->member_ = TAO_DynAny_i::create_dyn_any (tc, - ACE_TRY_ENV); - ACE_CHECK; - + env); this->member_->insert_ulong (value, - ACE_TRY_ENV); - ACE_CHECK; - - CORBA_Any_ptr any_ptr = this->type_->member_label (i, - ACE_TRY_ENV); - ACE_CHECK; - + env); this->discriminator_ = - TAO_DynAny_i::create_dyn_any (*any_ptr, - ACE_TRY_ENV); - ACE_CHECK; - + TAO_DynAny_i::create_dyn_any (*this->type_->member_label (i, + env), + env); this->current_index_ = i; return; } } - ACE_THROW (CORBA_DynAny::InvalidValue ()); + env.exception (new CORBA_DynAny::InvalidValue); } } void TAO_DynUnion_i::insert_float (CORBA::Float value, - CORBA::Environment &ACE_TRY_ENV) + CORBA::Environment &env) { - CORBA_TypeCode_ptr type = this->member_->type (ACE_TRY_ENV); - ACE_CHECK; - - CORBA::TCKind kind = TAO_DynAny_i::unalias (type, - ACE_TRY_ENV); - ACE_CHECK; - - if (kind == CORBA::tk_float) - { - this->member_->insert_float (value, - ACE_TRY_ENV); - ACE_CHECK; - } + if (TAO_DynAny_i::unalias (this->member_->type (env), + env) + == CORBA::tk_float) + this->member_->insert_float (value, + env); else { CORBA::ULong count = - this->type_->member_count (ACE_TRY_ENV); - ACE_CHECK; + this->type_->member_count (env); for (CORBA::ULong i = 0; i < count; @@ -963,64 +671,43 @@ TAO_DynUnion_i::insert_float (CORBA::Float value, { CORBA::TypeCode_ptr tc = this->type_->member_type (i, - ACE_TRY_ENV); - ACE_CHECK; + env); - CORBA::TCKind try_kind = TAO_DynAny_i::unalias (tc, - ACE_TRY_ENV); - ACE_CHECK; - - if (try_kind == CORBA::tk_float) + if (TAO_DynAny_i::unalias (tc, + env) + == CORBA::tk_float) { this->member_ = TAO_DynAny_i::create_dyn_any (tc, - ACE_TRY_ENV); - ACE_CHECK; - + env); this->member_->insert_float (value, - ACE_TRY_ENV); - ACE_CHECK; - - CORBA_Any_ptr any_ptr = this->type_->member_label (i, - ACE_TRY_ENV); - ACE_CHECK; - + env); this->discriminator_ = - TAO_DynAny_i::create_dyn_any (*any_ptr, - ACE_TRY_ENV); - ACE_CHECK; - + TAO_DynAny_i::create_dyn_any (*this->type_->member_label (i, + env), + env); this->current_index_ = i; return; } } - ACE_THROW (CORBA_DynAny::InvalidValue ()); + env.exception (new CORBA_DynAny::InvalidValue); } } void TAO_DynUnion_i::insert_double (CORBA::Double value, - CORBA::Environment &ACE_TRY_ENV) + CORBA::Environment &env) { - CORBA_TypeCode_ptr type = this->member_->type (ACE_TRY_ENV); - ACE_CHECK; - - CORBA::TCKind kind = TAO_DynAny_i::unalias (type, - ACE_TRY_ENV); - ACE_CHECK; - - if (kind == CORBA::tk_double) - { - this->member_->insert_double (value, - ACE_TRY_ENV); - ACE_CHECK; - } + if (TAO_DynAny_i::unalias (this->member_->type (env), + env) + == CORBA::tk_double) + this->member_->insert_double (value, + env); else { CORBA::ULong count = - this->type_->member_count (ACE_TRY_ENV); - ACE_CHECK; + this->type_->member_count (env); for (CORBA::ULong i = 0; i < count; @@ -1028,64 +715,43 @@ TAO_DynUnion_i::insert_double (CORBA::Double value, { CORBA::TypeCode_ptr tc = this->type_->member_type (i, - ACE_TRY_ENV); - ACE_CHECK; + env); - CORBA::TCKind try_kind = TAO_DynAny_i::unalias (tc, - ACE_TRY_ENV); - ACE_CHECK; - - if (try_kind == CORBA::tk_double) + if (TAO_DynAny_i::unalias (tc, + env) + == CORBA::tk_double) { this->member_ = TAO_DynAny_i::create_dyn_any (tc, - ACE_TRY_ENV); - ACE_CHECK; - + env); this->member_->insert_double (value, - ACE_TRY_ENV); - ACE_CHECK; - - CORBA_Any_ptr any_ptr = this->type_->member_label (i, - ACE_TRY_ENV); - ACE_CHECK; - + env); this->discriminator_ = - TAO_DynAny_i::create_dyn_any (*any_ptr, - ACE_TRY_ENV); - ACE_CHECK; - + TAO_DynAny_i::create_dyn_any (*this->type_->member_label (i, + env), + env); this->current_index_ = i; return; } } - ACE_THROW (CORBA_DynAny::InvalidValue ()); + env.exception (new CORBA_DynAny::InvalidValue); } } void TAO_DynUnion_i::insert_string (const char* value, - CORBA::Environment &ACE_TRY_ENV) + CORBA::Environment &env) { - CORBA_TypeCode_ptr type = this->member_->type (ACE_TRY_ENV); - ACE_CHECK; - - CORBA::TCKind kind = TAO_DynAny_i::unalias (type, - ACE_TRY_ENV); - ACE_CHECK; - - if (kind == CORBA::tk_string) - { - this->member_->insert_string (value, - ACE_TRY_ENV); - ACE_CHECK; - } + if (TAO_DynAny_i::unalias (this->member_->type (env), + env) + == CORBA::tk_string) + this->member_->insert_string (value, + env); else { CORBA::ULong count = - this->type_->member_count (ACE_TRY_ENV); - ACE_CHECK; + this->type_->member_count (env); for (CORBA::ULong i = 0; i < count; @@ -1093,64 +759,42 @@ TAO_DynUnion_i::insert_string (const char* value, { CORBA::TypeCode_ptr tc = this->type_->member_type (i, - ACE_TRY_ENV); - ACE_CHECK; - - CORBA::TCKind try_kind = TAO_DynAny_i::unalias (tc, - ACE_TRY_ENV); - ACE_CHECK; - - if (try_kind == CORBA::tk_string) + env); + if (TAO_DynAny_i::unalias (tc, + env) + == CORBA::tk_string) { this->member_ = TAO_DynAny_i::create_dyn_any (tc, - ACE_TRY_ENV); - ACE_CHECK; - + env); this->member_->insert_string (value, - ACE_TRY_ENV); - ACE_CHECK; - - CORBA_Any_ptr any_ptr = this->type_->member_label (i, - ACE_TRY_ENV); - ACE_CHECK; - + env); this->discriminator_ = - TAO_DynAny_i::create_dyn_any (*any_ptr, - ACE_TRY_ENV); - ACE_CHECK; - + TAO_DynAny_i::create_dyn_any (*this->type_->member_label (i, + env), + env); this->current_index_ = i; return; } } - ACE_THROW (CORBA_DynAny::InvalidValue ()); + env.exception (new CORBA_DynAny::InvalidValue); } } void TAO_DynUnion_i::insert_reference (CORBA::Object_ptr value, - CORBA::Environment &ACE_TRY_ENV) + CORBA::Environment &env) { - CORBA_TypeCode_ptr type = this->member_->type (ACE_TRY_ENV); - ACE_CHECK; - - CORBA::TCKind kind = TAO_DynAny_i::unalias (type, - ACE_TRY_ENV); - ACE_CHECK; - - if (kind == CORBA::tk_objref) - { - this->member_->insert_reference (value, - ACE_TRY_ENV); - ACE_CHECK; - } + if (TAO_DynAny_i::unalias (this->member_->type (env), + env) + == CORBA::tk_objref) + this->member_->insert_reference (value, + env); else { CORBA::ULong count = - this->type_->member_count (ACE_TRY_ENV); - ACE_CHECK; + this->type_->member_count (env); for (CORBA::ULong i = 0; i < count; @@ -1158,64 +802,43 @@ TAO_DynUnion_i::insert_reference (CORBA::Object_ptr value, { CORBA::TypeCode_ptr tc = this->type_->member_type (i, - ACE_TRY_ENV); - ACE_CHECK; - - CORBA::TCKind try_kind = TAO_DynAny_i::unalias (tc, - ACE_TRY_ENV); - ACE_CHECK; + env); - if (try_kind == CORBA::tk_objref) + if (TAO_DynAny_i::unalias (tc, + env) + == CORBA::tk_objref) { this->member_ = TAO_DynAny_i::create_dyn_any (tc, - ACE_TRY_ENV); - ACE_CHECK; - + env); this->member_->insert_reference (value, - ACE_TRY_ENV); - ACE_CHECK; - - CORBA_Any_ptr any_ptr = this->type_->member_label (i, - ACE_TRY_ENV); - ACE_CHECK; - + env); this->discriminator_ = - TAO_DynAny_i::create_dyn_any (*any_ptr, - ACE_TRY_ENV); - ACE_CHECK; - + TAO_DynAny_i::create_dyn_any (*this->type_->member_label (i, + env), + env); this->current_index_ = i; return; } } - ACE_THROW (CORBA_DynAny::InvalidValue ()); + env.exception (new CORBA_DynAny::InvalidValue); } } void TAO_DynUnion_i::insert_typecode (CORBA::TypeCode_ptr value, - CORBA::Environment &ACE_TRY_ENV) + CORBA::Environment &env) { - CORBA_TypeCode_ptr type = this->member_->type (ACE_TRY_ENV); - ACE_CHECK; - - CORBA::TCKind kind = TAO_DynAny_i::unalias (type, - ACE_TRY_ENV); - ACE_CHECK; - - if (kind == CORBA::tk_TypeCode) - { - this->member_->insert_typecode (value, - ACE_TRY_ENV); - ACE_CHECK; - } + if (TAO_DynAny_i::unalias (this->member_->type (env), + env) + == CORBA::tk_TypeCode) + this->member_->insert_typecode (value, + env); else { CORBA::ULong count = - this->type_->member_count (ACE_TRY_ENV); - ACE_CHECK; + this->type_->member_count (env); for (CORBA::ULong i = 0; i < count; @@ -1223,64 +846,43 @@ TAO_DynUnion_i::insert_typecode (CORBA::TypeCode_ptr value, { CORBA::TypeCode_ptr tc = this->type_->member_type (i, - ACE_TRY_ENV); - ACE_CHECK; - - CORBA::TCKind try_kind = TAO_DynAny_i::unalias (tc, - ACE_TRY_ENV); - ACE_CHECK; + env); - if (try_kind == CORBA::tk_TypeCode) + if (TAO_DynAny_i::unalias (tc, + env) + == CORBA::tk_TypeCode) { this->member_ = TAO_DynAny_i::create_dyn_any (tc, - ACE_TRY_ENV); - ACE_CHECK; - + env); this->member_->insert_typecode (value, - ACE_TRY_ENV); - ACE_CHECK; - - CORBA_Any_ptr any_ptr = this->type_->member_label (i, - ACE_TRY_ENV); - ACE_CHECK; - + env); this->discriminator_ = - TAO_DynAny_i::create_dyn_any (*any_ptr, - ACE_TRY_ENV); - ACE_CHECK; - + TAO_DynAny_i::create_dyn_any (*this->type_->member_label (i, + env), + env); this->current_index_ = i; return; } } - ACE_THROW (CORBA_DynAny::InvalidValue ()); + env.exception (new CORBA_DynAny::InvalidValue); } } void TAO_DynUnion_i::insert_longlong (CORBA::LongLong value, - CORBA::Environment &ACE_TRY_ENV) + CORBA::Environment &env) { - CORBA_TypeCode_ptr type = this->member_->type (ACE_TRY_ENV); - ACE_CHECK; - - CORBA::TCKind kind = TAO_DynAny_i::unalias (type, - ACE_TRY_ENV); - ACE_CHECK; - - if (kind == CORBA::tk_longlong) - { - this->member_->insert_longlong (value, - ACE_TRY_ENV); - ACE_CHECK; - } + if (TAO_DynAny_i::unalias (this->member_->type (env), + env) + == CORBA::tk_longlong) + this->member_->insert_longlong (value, + env); else { CORBA::ULong count = - this->type_->member_count (ACE_TRY_ENV); - ACE_CHECK; + this->type_->member_count (env); for (CORBA::ULong i = 0; i < count; @@ -1288,64 +890,42 @@ TAO_DynUnion_i::insert_longlong (CORBA::LongLong value, { CORBA::TypeCode_ptr tc = this->type_->member_type (i, - ACE_TRY_ENV); - ACE_CHECK; - - CORBA::TCKind try_kind = TAO_DynAny_i::unalias (tc, - ACE_TRY_ENV); - ACE_CHECK; - - if (try_kind == CORBA::tk_longlong) + env); + if (TAO_DynAny_i::unalias (tc, + env) + == CORBA::tk_longlong) { this->member_ = TAO_DynAny_i::create_dyn_any (tc, - ACE_TRY_ENV); - ACE_CHECK; - + env); this->member_->insert_longlong (value, - ACE_TRY_ENV); - ACE_CHECK; - - CORBA_Any_ptr any_ptr = this->type_->member_label (i, - ACE_TRY_ENV); - ACE_CHECK; - + env); this->discriminator_ = - TAO_DynAny_i::create_dyn_any (*any_ptr, - ACE_TRY_ENV); - ACE_CHECK; - + TAO_DynAny_i::create_dyn_any (*this->type_->member_label (i, + env), + env); this->current_index_ = i; return; } } - ACE_THROW (CORBA_DynAny::InvalidValue ()); + env.exception (new CORBA_DynAny::InvalidValue); } } void TAO_DynUnion_i::insert_ulonglong (CORBA::ULongLong value, - CORBA::Environment &ACE_TRY_ENV) + CORBA::Environment &env) { - CORBA_TypeCode_ptr type = this->member_->type (ACE_TRY_ENV); - ACE_CHECK; - - CORBA::TCKind kind = TAO_DynAny_i::unalias (type, - ACE_TRY_ENV); - ACE_CHECK; - - if (kind == CORBA::tk_ulonglong) - { - this->member_->insert_ulonglong (value, - ACE_TRY_ENV); - ACE_CHECK; - } + if (TAO_DynAny_i::unalias (this->member_->type (env), + env) + == CORBA::tk_ulonglong) + this->member_->insert_ulonglong (value, + env); else { CORBA::ULong count = - this->type_->member_count (ACE_TRY_ENV); - ACE_CHECK; + this->type_->member_count (env); for (CORBA::ULong i = 0; i < count; @@ -1353,64 +933,42 @@ TAO_DynUnion_i::insert_ulonglong (CORBA::ULongLong value, { CORBA::TypeCode_ptr tc = this->type_->member_type (i, - ACE_TRY_ENV); - ACE_CHECK; - - CORBA::TCKind try_kind = TAO_DynAny_i::unalias (tc, - ACE_TRY_ENV); - ACE_CHECK; - - if (try_kind == CORBA::tk_ulonglong) + env); + if (TAO_DynAny_i::unalias (tc, + env) + == CORBA::tk_ulonglong) { this->member_ = TAO_DynAny_i::create_dyn_any (tc, - ACE_TRY_ENV); - ACE_CHECK; - + env); this->member_->insert_ulonglong (value, - ACE_TRY_ENV); - ACE_CHECK; - - CORBA_Any_ptr any_ptr = this->type_->member_label (i, - ACE_TRY_ENV); - ACE_CHECK; - + env); this->discriminator_ = - TAO_DynAny_i::create_dyn_any (*any_ptr, - ACE_TRY_ENV); - ACE_CHECK; - + TAO_DynAny_i::create_dyn_any (*this->type_->member_label (i, + env), + env); this->current_index_ = i; return; } } - ACE_THROW (CORBA_DynAny::InvalidValue ()); + env.exception (new CORBA_DynAny::InvalidValue); } } void TAO_DynUnion_i::insert_wchar (CORBA::WChar value, - CORBA::Environment &ACE_TRY_ENV) + CORBA::Environment &env) { - CORBA_TypeCode_ptr type = this->member_->type (ACE_TRY_ENV); - ACE_CHECK; - - CORBA::TCKind kind = TAO_DynAny_i::unalias (type, - ACE_TRY_ENV); - ACE_CHECK; - - if (kind == CORBA::tk_wchar) - { - this->member_->insert_wchar (value, - ACE_TRY_ENV); - ACE_CHECK; - } + if (TAO_DynAny_i::unalias (this->member_->type (env), + env) + == CORBA::tk_wchar) + this->member_->insert_wchar (value, + env); else { CORBA::ULong count = - this->type_->member_count (ACE_TRY_ENV); - ACE_CHECK; + this->type_->member_count (env); for (CORBA::ULong i = 0; i < count; @@ -1418,64 +976,42 @@ TAO_DynUnion_i::insert_wchar (CORBA::WChar value, { CORBA::TypeCode_ptr tc = this->type_->member_type (i, - ACE_TRY_ENV); - ACE_CHECK; + env); - CORBA::TCKind try_kind = TAO_DynAny_i::unalias (tc, - ACE_TRY_ENV); - ACE_CHECK; - - if (try_kind == CORBA::tk_wchar) + if (TAO_DynAny_i::unalias (tc, + env) + == CORBA::tk_wchar) { this->member_ = TAO_DynAny_i::create_dyn_any (tc, - ACE_TRY_ENV); - ACE_CHECK; - + env); this->member_->insert_wchar (value, - ACE_TRY_ENV); - ACE_CHECK; - - CORBA_Any_ptr any_ptr = this->type_->member_label (i, - ACE_TRY_ENV); - ACE_CHECK; - + env); this->discriminator_ = - TAO_DynAny_i::create_dyn_any (*any_ptr, - ACE_TRY_ENV); - ACE_CHECK; - + TAO_DynAny_i::create_dyn_any (*this->type_->member_label (i, + env), + env); this->current_index_ = i; return; } } - ACE_THROW (CORBA_DynAny::InvalidValue ()); + env.exception (new CORBA_DynAny::InvalidValue); } } void TAO_DynUnion_i::insert_any (const CORBA::Any& value, - CORBA::Environment &ACE_TRY_ENV) + CORBA::Environment &env) { - CORBA_TypeCode_ptr type = this->member_->type (ACE_TRY_ENV); - ACE_CHECK; - - CORBA::TCKind kind = TAO_DynAny_i::unalias (type, - ACE_TRY_ENV); - ACE_CHECK; - - if (kind == CORBA::tk_any) - { - this->member_->insert_any (value, - ACE_TRY_ENV); - ACE_CHECK; - } + if (TAO_DynAny_i::unalias (this->member_->type (env), + env) + == CORBA::tk_any) + this->member_->insert_any (value, env); else { CORBA::ULong count = - this->type_->member_count (ACE_TRY_ENV); - ACE_CHECK; + this->type_->member_count (env); for (CORBA::ULong i = 0; i < count; @@ -1483,461 +1019,274 @@ TAO_DynUnion_i::insert_any (const CORBA::Any& value, { CORBA::TypeCode_ptr tc = this->type_->member_type (i, - ACE_TRY_ENV); - ACE_CHECK; - - CORBA::TCKind try_kind = TAO_DynAny_i::unalias (tc, - ACE_TRY_ENV); - ACE_CHECK; - - if (try_kind == CORBA::tk_any) + env); + if (TAO_DynAny_i::unalias (tc, + env) + == CORBA::tk_any) { this->member_ = TAO_DynAny_i::create_dyn_any (tc, - ACE_TRY_ENV); - ACE_CHECK; - + env); this->member_->insert_any (value, - ACE_TRY_ENV); - ACE_CHECK; - - CORBA_Any_ptr any_ptr = this->type_->member_label (i, - ACE_TRY_ENV); - ACE_CHECK; - + env); this->discriminator_ = - TAO_DynAny_i::create_dyn_any (*any_ptr, - ACE_TRY_ENV); - ACE_CHECK; - + TAO_DynAny_i::create_dyn_any (*this->type_->member_label (i, + env), + env); this->current_index_ = i; return; } } - ACE_THROW (CORBA_DynAny::InvalidValue ()); + env.exception (new CORBA_DynAny::InvalidValue); } } // Get functions CORBA::Boolean -TAO_DynUnion_i::get_boolean (CORBA::Environment &ACE_TRY_ENV) +TAO_DynUnion_i::get_boolean (CORBA::Environment &env) { - CORBA::Boolean retval = 0; - - CORBA_TypeCode_ptr tc = this->member_->type (ACE_TRY_ENV); - ACE_CHECK_RETURN (retval); - - CORBA::TCKind kind = TAO_DynAny_i::unalias (tc, - ACE_TRY_ENV); - ACE_CHECK_RETURN (retval); - - if (this->member_.in () && (kind == CORBA::tk_boolean)) - { - retval = this->member_->get_boolean (ACE_TRY_ENV); - ACE_CHECK_RETURN (retval); - - return retval; - } + if (this->member_.in () + && TAO_DynAny_i::unalias (this->member_->type (env), + env) + == CORBA::tk_boolean) + return this->member_->get_boolean (env); else { - ACE_THROW_RETURN (CORBA_DynAny::Invalid (), - 0); + env.exception (new CORBA_DynAny::Invalid); + return 0; } } CORBA::Octet -TAO_DynUnion_i::get_octet (CORBA::Environment &ACE_TRY_ENV) +TAO_DynUnion_i::get_octet (CORBA::Environment &env) { - CORBA::Octet retval = 0; - - CORBA_TypeCode_ptr tc = this->member_->type (ACE_TRY_ENV); - ACE_CHECK_RETURN (retval); - - CORBA::TCKind kind = TAO_DynAny_i::unalias (tc, - ACE_TRY_ENV); - ACE_CHECK_RETURN (retval); - - if (this->member_.in () && (kind == CORBA::tk_octet)) - { - retval = this->member_->get_octet (ACE_TRY_ENV); - ACE_CHECK_RETURN (retval); - - return retval; - } + if (this->member_.in () + && TAO_DynAny_i::unalias (this->member_->type (env), + env) + == CORBA::tk_octet) + return this->member_->get_octet (env); else { - ACE_THROW_RETURN (CORBA_DynAny::Invalid (), - 0); + env.exception (new CORBA_DynAny::Invalid); + return 0; } } CORBA::Char -TAO_DynUnion_i::get_char (CORBA::Environment &ACE_TRY_ENV) +TAO_DynUnion_i::get_char (CORBA::Environment &env) { - CORBA::Char retval = 0; - - CORBA_TypeCode_ptr tc = this->member_->type (ACE_TRY_ENV); - ACE_CHECK_RETURN (retval); - - CORBA::TCKind kind = TAO_DynAny_i::unalias (tc, - ACE_TRY_ENV); - ACE_CHECK_RETURN (retval); - - if (this->member_.in () && (kind == CORBA::tk_char)) - { - retval = this->member_->get_char (ACE_TRY_ENV); - ACE_CHECK_RETURN (retval); - - return retval; - } + if (this->member_.in () + && TAO_DynAny_i::unalias (this->member_->type (env), + env) + == CORBA::tk_char) + return this->member_->get_char (env); else { - ACE_THROW_RETURN (CORBA_DynAny::Invalid (), - 0); + env.exception (new CORBA_DynAny::Invalid); + return 0; } } CORBA::Short -TAO_DynUnion_i::get_short (CORBA::Environment &ACE_TRY_ENV) +TAO_DynUnion_i::get_short (CORBA::Environment &env) { - CORBA::Short retval = 0; - - CORBA_TypeCode_ptr tc = this->member_->type (ACE_TRY_ENV); - ACE_CHECK_RETURN (retval); - - CORBA::TCKind kind = TAO_DynAny_i::unalias (tc, - ACE_TRY_ENV); - ACE_CHECK_RETURN (retval); - - if (this->member_.in () && (kind == CORBA::tk_short)) - { - retval = this->member_->get_short (ACE_TRY_ENV); - ACE_CHECK_RETURN (retval); - - return retval; - } + if (this->member_.in () + && TAO_DynAny_i::unalias (this->member_->type (env), + env) + == CORBA::tk_short) + return this->member_->get_short (env); else { - ACE_THROW_RETURN (CORBA_DynAny::Invalid (), - 0); + env.exception (new CORBA_DynAny::Invalid); + return 0; } } CORBA::Long -TAO_DynUnion_i::get_long (CORBA::Environment &ACE_TRY_ENV) +TAO_DynUnion_i::get_long (CORBA::Environment &env) { - CORBA::Long retval = 0; - - CORBA_TypeCode_ptr tc = this->member_->type (ACE_TRY_ENV); - ACE_CHECK_RETURN (retval); - - CORBA::TCKind kind = TAO_DynAny_i::unalias (tc, - ACE_TRY_ENV); - ACE_CHECK_RETURN (retval); - - if (this->member_.in () && (kind == CORBA::tk_long)) - { - retval = this->member_->get_long (ACE_TRY_ENV); - ACE_CHECK_RETURN (retval); - - return retval; - } + if (this->member_.in () + && TAO_DynAny_i::unalias (this->member_->type (env), + env) + == CORBA::tk_long) + return this->member_->get_long (env); else { - ACE_THROW_RETURN (CORBA_DynAny::Invalid (), - 0); + env.exception (new CORBA_DynAny::Invalid); + return 0; } } CORBA::UShort -TAO_DynUnion_i::get_ushort(CORBA::Environment &ACE_TRY_ENV) +TAO_DynUnion_i::get_ushort(CORBA::Environment &env) { - CORBA::UShort retval = 0; - - CORBA_TypeCode_ptr tc = this->member_->type (ACE_TRY_ENV); - ACE_CHECK_RETURN (retval); - - CORBA::TCKind kind = TAO_DynAny_i::unalias (tc, - ACE_TRY_ENV); - ACE_CHECK_RETURN (retval); - - if (this->member_.in () && (kind == CORBA::tk_ushort)) - { - retval = this->member_->get_ushort (ACE_TRY_ENV); - ACE_CHECK_RETURN (retval); - - return retval; - } + if (this->member_.in () + && TAO_DynAny_i::unalias (this->member_->type (env), + env) + == CORBA::tk_ushort) + return this->member_->get_ushort (env); else { - ACE_THROW_RETURN (CORBA_DynAny::Invalid (), - 0); + env.exception (new CORBA_DynAny::Invalid); + return 0; } } CORBA::ULong -TAO_DynUnion_i::get_ulong (CORBA::Environment &ACE_TRY_ENV) +TAO_DynUnion_i::get_ulong (CORBA::Environment &env) { - CORBA::ULong retval = 0; - - CORBA_TypeCode_ptr tc = this->member_->type (ACE_TRY_ENV); - ACE_CHECK_RETURN (retval); - - CORBA::TCKind kind = TAO_DynAny_i::unalias (tc, - ACE_TRY_ENV); - ACE_CHECK_RETURN (retval); - - if (this->member_.in () && (kind == CORBA::tk_ulong)) - { - retval = this->member_->get_ulong (ACE_TRY_ENV); - ACE_CHECK_RETURN (retval); - - return retval; - } + if (this->member_.in () + && TAO_DynAny_i::unalias (this->member_->type (env), + env) + == CORBA::tk_ulong) + return this->member_->get_ulong (env); else { - ACE_THROW_RETURN (CORBA_DynAny::Invalid (), - 0); + env.exception (new CORBA_DynAny::Invalid); + return 0; } } CORBA::Float -TAO_DynUnion_i::get_float (CORBA::Environment &ACE_TRY_ENV) +TAO_DynUnion_i::get_float (CORBA::Environment &env) { - CORBA::Float retval = 0; - - CORBA_TypeCode_ptr tc = this->member_->type (ACE_TRY_ENV); - ACE_CHECK_RETURN (retval); - - CORBA::TCKind kind = TAO_DynAny_i::unalias (tc, - ACE_TRY_ENV); - ACE_CHECK_RETURN (retval); - - if (this->member_.in () && (kind == CORBA::tk_float)) - { - retval = this->member_->get_float (ACE_TRY_ENV); - ACE_CHECK_RETURN (retval); - - return retval; - } + if (this->member_.in () + && TAO_DynAny_i::unalias (this->member_->type (env), + env) + == CORBA::tk_float) + return this->member_->get_float (env); else { - ACE_THROW_RETURN (CORBA_DynAny::Invalid (), - 0); + env.exception (new CORBA_DynAny::Invalid); + return 0; } } CORBA::Double -TAO_DynUnion_i::get_double (CORBA::Environment &ACE_TRY_ENV) +TAO_DynUnion_i::get_double (CORBA::Environment &env) { - CORBA::Double retval = 0; - - CORBA_TypeCode_ptr tc = this->member_->type (ACE_TRY_ENV); - ACE_CHECK_RETURN (retval); - - CORBA::TCKind kind = TAO_DynAny_i::unalias (tc, - ACE_TRY_ENV); - ACE_CHECK_RETURN (retval); - - if (this->member_.in () && (kind == CORBA::tk_double)) - { - retval = this->member_->get_double (ACE_TRY_ENV); - ACE_CHECK_RETURN (retval); - - return retval; - } + if (this->member_.in () + && TAO_DynAny_i::unalias (this->member_->type (env), + env) + == CORBA::tk_double) + return this->member_->get_double (env); else { - ACE_THROW_RETURN (CORBA_DynAny::Invalid (), - 0); + env.exception (new CORBA_DynAny::Invalid); + return 0; } } CORBA::String -TAO_DynUnion_i::get_string (CORBA::Environment &ACE_TRY_ENV) +TAO_DynUnion_i::get_string (CORBA::Environment &env) { - CORBA::String retval = 0; - - CORBA_TypeCode_ptr tc = this->member_->type (ACE_TRY_ENV); - ACE_CHECK_RETURN (retval); - - CORBA::TCKind kind = TAO_DynAny_i::unalias (tc, - ACE_TRY_ENV); - ACE_CHECK_RETURN (retval); - - if (this->member_.in () && (kind == CORBA::tk_string)) - { - retval = this->member_->get_string (ACE_TRY_ENV); - ACE_CHECK_RETURN (retval); - - return retval; - } + if (this->member_.in () + && TAO_DynAny_i::unalias (this->member_->type (env), + env) + == CORBA::tk_string) + return this->member_->get_string (env); else { - ACE_THROW_RETURN (CORBA_DynAny::Invalid (), - 0); + env.exception (new CORBA_DynAny::Invalid); + return 0; } } CORBA::TypeCode_ptr -TAO_DynUnion_i::get_typecode (CORBA::Environment &ACE_TRY_ENV) +TAO_DynUnion_i::get_typecode (CORBA::Environment &env) { - CORBA::TypeCode_ptr retval = 0; - - CORBA_TypeCode_ptr tc = this->member_->type (ACE_TRY_ENV); - ACE_CHECK_RETURN (retval); - - CORBA::TCKind kind = TAO_DynAny_i::unalias (tc, - ACE_TRY_ENV); - ACE_CHECK_RETURN (retval); - - if (this->member_.in () && (kind == CORBA::tk_TypeCode)) - { - retval = this->member_->get_typecode (ACE_TRY_ENV); - ACE_CHECK_RETURN (retval); - - return retval; - } + if (this->member_.in () + && TAO_DynAny_i::unalias (this->member_->type (env), + env) + == CORBA::tk_TypeCode) + return this->member_->get_typecode (env); else { - ACE_THROW_RETURN (CORBA_DynAny::Invalid (), - 0); + env.exception (new CORBA_DynAny::Invalid); + return 0; } } CORBA::Object_ptr -TAO_DynUnion_i::get_reference (CORBA::Environment &ACE_TRY_ENV) +TAO_DynUnion_i::get_reference (CORBA::Environment &env) { - CORBA::Object_ptr retval = 0; - - CORBA_TypeCode_ptr tc = this->member_->type (ACE_TRY_ENV); - ACE_CHECK_RETURN (retval); - - CORBA::TCKind kind = TAO_DynAny_i::unalias (tc, - ACE_TRY_ENV); - ACE_CHECK_RETURN (retval); - - if (this->member_.in () && (kind == CORBA::tk_objref)) - { - retval = this->member_->get_reference (ACE_TRY_ENV); - ACE_CHECK_RETURN (retval); - - return retval; - } + if (this->member_.in () + && TAO_DynAny_i::unalias (this->member_->type (env), + env) + == CORBA::tk_objref) + return this->member_->get_reference (env); else { - ACE_THROW_RETURN (CORBA_DynAny::Invalid (), - 0); + env.exception (new CORBA_DynAny::Invalid); + return 0; } } CORBA::LongLong -TAO_DynUnion_i::get_longlong (CORBA::Environment &ACE_TRY_ENV) +TAO_DynUnion_i::get_longlong (CORBA::Environment &env) { + if (this->member_.in () + && TAO_DynAny_i::unalias (this->member_->type (env), + env) + == CORBA::tk_longlong) + return this->member_->get_longlong (env); + else + { + env.exception (new CORBA_DynAny::Invalid); + #if defined (ACE_LACKS_LONGLONG_T) - CORBA::LongLong retval = {0, 0}; + CORBA::LongLong tmp = {0, 0}; + return tmp; #else /* ! ACE_LACKS_LONGLONG_T */ - CORBA::LongLong retval = 0; + return 0; #endif /* ! ACE_LACKS_LONGLONG_T */ - - CORBA_TypeCode_ptr tc = this->member_->type (ACE_TRY_ENV); - ACE_CHECK_RETURN (retval); - - CORBA::TCKind kind = TAO_DynAny_i::unalias (tc, - ACE_TRY_ENV); - ACE_CHECK_RETURN (retval); - - if (this->member_.in () && (kind == CORBA::tk_longlong)) - { - retval = this->member_->get_longlong (ACE_TRY_ENV); - ACE_CHECK_RETURN (retval); - - return retval; - } - else - { - ACE_THROW_RETURN (CORBA_DynAny::Invalid (), - retval); } } CORBA::ULongLong -TAO_DynUnion_i::get_ulonglong (CORBA::Environment &ACE_TRY_ENV) +TAO_DynUnion_i::get_ulonglong (CORBA::Environment &env) { - CORBA::ULongLong retval = 0; - - CORBA_TypeCode_ptr tc = this->member_->type (ACE_TRY_ENV); - ACE_CHECK_RETURN (retval); - - CORBA::TCKind kind = TAO_DynAny_i::unalias (tc, - ACE_TRY_ENV); - ACE_CHECK_RETURN (retval); - - if (this->member_.in () && (kind == CORBA::tk_ulonglong)) - { - retval = this->member_->get_ulonglong (ACE_TRY_ENV); - ACE_CHECK_RETURN (retval); - - return retval; - } + if (this->member_.in () + && TAO_DynAny_i::unalias (this->member_->type (env), + env) + == CORBA::tk_ulonglong) + return this->member_->get_ulonglong (env); else { - ACE_THROW_RETURN (CORBA_DynAny::Invalid (), - 0); + env.exception (new CORBA_DynAny::Invalid); + return 0; } } CORBA::WChar -TAO_DynUnion_i::get_wchar (CORBA::Environment &ACE_TRY_ENV) +TAO_DynUnion_i::get_wchar (CORBA::Environment &env) { - CORBA::WChar retval = 0; - - CORBA_TypeCode_ptr tc = this->member_->type (ACE_TRY_ENV); - ACE_CHECK_RETURN (retval); - - CORBA::TCKind kind = TAO_DynAny_i::unalias (tc, - ACE_TRY_ENV); - ACE_CHECK_RETURN (retval); - - if (this->member_.in () && (kind == CORBA::tk_wchar)) - { - retval = this->member_->get_wchar (ACE_TRY_ENV); - ACE_CHECK_RETURN (retval); - - return retval; - } + if (this->member_.in () + && TAO_DynAny_i::unalias (this->member_->type (env), + env) + == CORBA::tk_wchar) + return this->member_->get_wchar (env); else { - ACE_THROW_RETURN (CORBA_DynAny::Invalid (), - 0); + env.exception (new CORBA_DynAny::Invalid); + return 0; } } CORBA::Any_ptr -TAO_DynUnion_i::get_any (CORBA::Environment &ACE_TRY_ENV) +TAO_DynUnion_i::get_any (CORBA::Environment &env) { - CORBA::Any_ptr retval = 0; - - CORBA_TypeCode_ptr tc = this->member_->type (ACE_TRY_ENV); - ACE_CHECK_RETURN (retval); - - CORBA::TCKind kind = TAO_DynAny_i::unalias (tc, - ACE_TRY_ENV); - ACE_CHECK_RETURN (retval); - - if (this->member_.in () && (kind == CORBA::tk_any)) - { - retval = this->member_->get_any (ACE_TRY_ENV); - ACE_CHECK_RETURN (retval); - - return retval; - } + if (this->member_.in () + && TAO_DynAny_i::unalias (this->member_->type (env), + env) + == CORBA::tk_any) + return this->member_->get_any (env); else { - ACE_THROW_RETURN (CORBA_DynAny::Invalid (), - 0); + env.exception (new CORBA_DynAny::Invalid); + return 0; } } @@ -2090,57 +1439,45 @@ TAO_DynUnion_i::get_extractor (CORBA::TCKind kind, // argument. void TAO_DynUnion_i::set_from_any (const CORBA_Any& any, - CORBA::Environment &ACE_TRY_ENV) + CORBA::Environment &env) { // Get the CDR stream of the argument. ACE_Message_Block* mb = any._tao_get_cdr (); TAO_InputCDR cdr (mb); - CORBA_TypeCode_ptr disc_tc = - any.type ()->discriminator_type (ACE_TRY_ENV); - ACE_CHECK; + CORBA_TypeCode_ptr disc_tc = any.type ()->discriminator_type (env); CORBA_Any disc_any (disc_tc, 0, cdr.start ()); if (!CORBA::is_nil (this->discriminator_.in ())) - { - this->discriminator_->destroy (ACE_TRY_ENV); - ACE_CHECK; - } + this->discriminator_->destroy (env); // Set the discriminator holder. this->discriminator_ = TAO_DynAny_i::create_dyn_any (disc_any, - ACE_TRY_ENV); - ACE_CHECK; + env); cdr.skip (disc_tc); - CORBA::ULong count = any.type ()->member_count (ACE_TRY_ENV); - ACE_CHECK; - + CORBA::ULong count = any.type ()->member_count (env); CORBA::ULong i; CORBA::Long default_index = -1; - CORBA::TCKind discriminator_kind = disc_tc->kind (ACE_TRY_ENV); - ACE_CHECK; + CORBA::TCKind discriminator_kind = disc_tc->kind (env); DU_Extractor_base* functor = this->get_extractor (discriminator_kind, - ACE_TRY_ENV); - ACE_CHECK; + env); // Get the index. for (i = 0; i < count; i++) { CORBA_Any label_any = *any.type ()->member_label (i, - ACE_TRY_ENV); - ACE_CHECK; + env); - CORBA::TCKind label_kind = label_any.type ()->kind (ACE_TRY_ENV); - ACE_CHECK; + CORBA::TCKind label_kind = label_any.type ()->kind (env); // If there is a default index, note the value but don't call // check_match. @@ -2161,35 +1498,23 @@ TAO_DynUnion_i::set_from_any (const CORBA_Any& any, delete functor; if (i == count && default_index == -1) - { - ACE_THROW (CORBA_DynAny::Invalid ()); - } + env.exception (new CORBA_DynAny::Invalid); else { if (i == count && default_index != -1) - { - this->current_index_ = default_index; - } - - CORBA::TypeCode_ptr member_tc = - any.type ()->member_type (this->current_index_, - ACE_TRY_ENV); - ACE_CHECK; + this->current_index_ = default_index; - CORBA_Any member_any (member_tc, + CORBA_Any member_any (any.type ()->member_type (this->current_index_, + env), 0, cdr.start ()); if (!CORBA::is_nil (this->member_.in ())) - { - this->member_->destroy (ACE_TRY_ENV); - ACE_CHECK; - } + this->member_->destroy (env); this->member_ = TAO_DynAny_i::create_dyn_any (member_any, - ACE_TRY_ENV); - ACE_CHECK; + env); } } |