diff options
author | bala <balanatarajan@users.noreply.github.com> | 2003-02-20 17:00:06 +0000 |
---|---|---|
committer | bala <balanatarajan@users.noreply.github.com> | 2003-02-20 17:00:06 +0000 |
commit | 317d73ab248696382fbdadd5cffd61c5c98baafa (patch) | |
tree | 6147270e247e7317b31ce7431cf068b4bbdb54a6 | |
parent | 6ecbbc9aa8e02f237331fa58cc61a5e4cadc4777 (diff) | |
download | ATCD-317d73ab248696382fbdadd5cffd61c5c98baafa.tar.gz |
ChangeLogTag: Thu Feb 20 12:10:13 2003 Balachandran Natarajan <bala@isis-server.isis.vanderbilt.edu>
-rw-r--r-- | TAO/tao/ChangeLog | 12 | ||||
-rw-r--r-- | TAO/tao/ClientRequestInfo_i.cpp | 83 | ||||
-rw-r--r-- | TAO/tao/Tagged_Components.cpp | 115 | ||||
-rw-r--r-- | TAO/tao/Tagged_Components.h | 11 | ||||
-rw-r--r-- | TAO/tao/Tagged_Components.i | 15 |
5 files changed, 82 insertions, 154 deletions
diff --git a/TAO/tao/ChangeLog b/TAO/tao/ChangeLog index 776bf3ea233..44cb27f16c9 100644 --- a/TAO/tao/ChangeLog +++ b/TAO/tao/ChangeLog @@ -1,3 +1,15 @@ +Thu Feb 20 12:10:13 2003 Balachandran Natarajan <bala@isis-server.isis.vanderbilt.edu> + + * tao/Tagged_Components.h: + * tao/Tagged_Components.cpp: + * tao/Tagged_Components.i (TAO_Tagged_Components): Reverted the + change "Wed Feb 12 15:40:46 2003 Balachandran Natarajan + <bala@isis-server.isis.vanderbilt.edu>" since it was counter + productive. + + * tao/ClientRequestInfo_i.cpp: Reverted the changes made to + accomodatethe above change. + Thu Feb 13 17:53:44 2003 Balachandran Natarajan <bala@isis-server.isis.vanderbilt.edu> * tao/IIOP_Endpoint.h (TAO_IIOP_Endpoint): diff --git a/TAO/tao/ClientRequestInfo_i.cpp b/TAO/tao/ClientRequestInfo_i.cpp index c8b9fe32916..6ff64e680ae 100644 --- a/TAO/tao/ClientRequestInfo_i.cpp +++ b/TAO/tao/ClientRequestInfo_i.cpp @@ -138,7 +138,7 @@ TAO_ClientRequestInfo_i::effective_profile (ACE_ENV_SINGLE_ARG_DECL) { ACE_THROW_RETURN (CORBA::BAD_PARAM (CORBA::OMGVMCID | 28, CORBA::COMPLETED_NO), - 0); + 0); } // @@BAD_PARAM exception @@ -210,38 +210,35 @@ TAO_ClientRequestInfo_i::get_effective_component ( TAO_Tagged_Components &ecs = this->target_->_stubobj ()->profile_in_use ()->tagged_components (); - IOP::MultipleComponentProfile *components = - ecs.components (); + IOP::MultipleComponentProfile &components = ecs.components (); - if (components) + CORBA::ULong len = components.length (); + for (CORBA::ULong i = 0; i < len; ++i) { - CORBA::ULong len = components->length (); - for (CORBA::ULong i = 0; i < len; ++i) + if (components[i].tag == id) { - if ((*components)[i].tag == id) - { - IOP::TaggedComponent *tagged_component = 0; + IOP::TaggedComponent *tagged_component = 0; - // Only allocate a sequence if we have a tagged component - // that matches the given IOP::ComponentId. - ACE_NEW_THROW_EX (tagged_component, - IOP::TaggedComponent, - CORBA::NO_MEMORY ( - CORBA::SystemException::_tao_minor_code ( - TAO_DEFAULT_MINOR_CODE, - ENOMEM), - CORBA::COMPLETED_NO)); - ACE_CHECK_RETURN (0); + // Only allocate a sequence if we have a tagged component + // that matches the given IOP::ComponentId. + ACE_NEW_THROW_EX (tagged_component, + IOP::TaggedComponent, + CORBA::NO_MEMORY ( + CORBA::SystemException::_tao_minor_code ( + TAO_DEFAULT_MINOR_CODE, + ENOMEM), + CORBA::COMPLETED_NO)); + ACE_CHECK_RETURN (0); - IOP::TaggedComponent_var safe_tagged_component = - tagged_component; + IOP::TaggedComponent_var safe_tagged_component = + tagged_component; - (*tagged_component) = (*components)[i]; // Deep copy + (*tagged_component) = components[i]; // Deep copy - return safe_tagged_component._retn (); - } + return safe_tagged_component._retn (); } } + // No tagged component was found that matched the given // IOP::ComponentId. ACE_THROW_RETURN (CORBA::BAD_PARAM (CORBA::OMGVMCID | 28, @@ -258,38 +255,36 @@ TAO_ClientRequestInfo_i::get_effective_components ( TAO_Tagged_Components &ecs = this->target_->_stubobj ()->profile_in_use ()->tagged_components (); - IOP::MultipleComponentProfile *components = ecs.components (); + IOP::MultipleComponentProfile &components = ecs.components (); IOP::TaggedComponentSeq *tagged_components = 0; IOP::TaggedComponentSeq_var safe_tagged_components; - if (components) + + CORBA::ULong len = components.length (); + for (CORBA::ULong i = 0; i < len; ++i) { - CORBA::ULong len = components->length (); - for (CORBA::ULong i = 0; i < len; ++i) + if (components[i].tag == id) { - if ((*components)[i].tag == id) + if (tagged_components == 0) { - if (tagged_components == 0) - { - // Only allocate a sequence if we have tagged components - // to place into the sequence. - ACE_NEW_THROW_EX (tagged_components, - IOP::TaggedComponentSeq, - CORBA::NO_MEMORY ( - CORBA::SystemException::_tao_minor_code ( + // Only allocate a sequence if we have tagged components + // to place into the sequence. + ACE_NEW_THROW_EX (tagged_components, + IOP::TaggedComponentSeq, + CORBA::NO_MEMORY ( + CORBA::SystemException::_tao_minor_code ( TAO_DEFAULT_MINOR_CODE, ENOMEM), CORBA::COMPLETED_NO)); - ACE_CHECK_RETURN (0); + ACE_CHECK_RETURN (0); - safe_tagged_components = tagged_components; - } + safe_tagged_components = tagged_components; + } - CORBA::ULong old_len = safe_tagged_components->length (); - safe_tagged_components->length (old_len + 1); + CORBA::ULong old_len = safe_tagged_components->length (); + safe_tagged_components->length (old_len + 1); - safe_tagged_components[old_len] = (*components)[i]; // Deep copy - } + safe_tagged_components[old_len] = components[i]; // Deep copy } } diff --git a/TAO/tao/Tagged_Components.cpp b/TAO/tao/Tagged_Components.cpp index 0683e94fe43..52279af989c 100644 --- a/TAO/tao/Tagged_Components.cpp +++ b/TAO/tao/Tagged_Components.cpp @@ -120,7 +120,6 @@ TAO_Tagged_Components::set_known_component_i ( TAO_InputCDR cdr (ACE_reinterpret_cast (const char*, component.component_data.get_buffer ()), component.component_data.length ()); - CORBA::Boolean byte_order; if ((cdr >> ACE_InputCDR::to_boolean (byte_order)) == 0) return; @@ -131,6 +130,7 @@ TAO_Tagged_Components::set_known_component_i ( CORBA::ULong orb_type; if ((cdr >> orb_type) == 0) return; + this->orb_type_ = orb_type; this->orb_type_set_ = 1; } @@ -153,23 +153,11 @@ TAO_Tagged_Components::set_component_i (const IOP::TaggedComponent& component) { // @@ TODO Some components can show up multiple times, others // can't find out and take appropiate action. - - if (this->components_ == 0) - { - int retval = - this->create_components_i (); - - if (retval == -1) - ACE_ERROR ((LM_DEBUG, - "(%P|%t) TAO - TAO_Tagged_Components::set_components_i ", - "create_components_i failed \n")); - } - - for (CORBA::ULong i = 0; i != this->components_->length (); ++i) + for (CORBA::ULong i = 0; i != this->components_.length (); ++i) { - if (component.tag == (*this->components_)[i].tag) + if (component.tag == this->components_[i].tag) { - (*this->components_)[i] = component; + this->components_[i] = component; return; } } @@ -179,24 +167,14 @@ TAO_Tagged_Components::set_component_i (const IOP::TaggedComponent& component) void TAO_Tagged_Components::set_component_i (IOP::TaggedComponent& component) { - if (this->components_ == 0) + for (CORBA::ULong i = 0; i != this->components_.length (); ++i) { - int retval = - this->create_components_i (); - - if (retval == -1) - ACE_ERROR ((LM_DEBUG, - "(%P|%t) TAO - TAO_Tagged_Components::set_component_i ", - "create_components_i failed \n")); - } - for (CORBA::ULong i = 0; i != this->components_->length (); ++i) - { - if (component.tag == (*this->components_)[i].tag) + if (component.tag == this->components_[i].tag) { CORBA::ULong max = component.component_data.maximum (); CORBA::ULong len = component.component_data.length (); CORBA::Octet* buf = component.component_data.get_buffer (1); - (*this->components_)[i].component_data.replace (max, len, buf, 1); + this->components_[i].component_data.replace (max, len, buf, 1); return; } } @@ -206,72 +184,35 @@ TAO_Tagged_Components::set_component_i (IOP::TaggedComponent& component) void TAO_Tagged_Components::add_component_i (IOP::TaggedComponent& component) { - if (this->components_ == 0) - { - int retval = - this->create_components_i (); - - if (retval == -1) - ACE_ERROR ((LM_DEBUG, - "(%P|%t) TAO - TAO_Tagged_Components::add_component_i ", - "create_components_i failed \n")); - } // @@ TODO Some components can show up multiple times, others // can't find out and take appropiate action. - CORBA::ULong l = this->components_->length (); - this->components_->length (l + 1); - (*this->components_)[l].tag = component.tag; + CORBA::ULong l = this->components_.length (); + this->components_.length (l + 1); + this->components_[l].tag = component.tag; CORBA::ULong max = component.component_data.maximum (); CORBA::ULong len = component.component_data.length (); CORBA::Octet* buf = component.component_data.get_buffer (1); - (*this->components_)[l].component_data.replace (max, len, buf, 1); + this->components_[l].component_data.replace (max, len, buf, 1); } void TAO_Tagged_Components::add_component_i (const IOP::TaggedComponent& component) { - if (this->components_ == 0) - { - int retval = - this->create_components_i (); - - if (retval == -1) - ACE_ERROR ((LM_DEBUG, - "(%P|%t) TAO - TAO_Tagged_Components::add_components_i ", - "create_components_i () failed \n")); - } - // @@ TODO Some components can show up multiple times, others // can't find out and take appropiate action. - CORBA::ULong l = this->components_->length (); - this->components_->length (l + 1); - (*this->components_)[l] = component; -} - -int -TAO_Tagged_Components::create_components_i (void) -{ - // @@ NOTE: Very bad way to allocate data. Exceptions?? - ACE_NEW_RETURN (this->components_, - IOP::MultipleComponentProfile, - -1); - - return 0; + CORBA::ULong l = this->components_.length (); + this->components_.length (l + 1); + this->components_[l] = component; } int TAO_Tagged_Components::get_component (IOP::TaggedComponent& component) const { - if (this->components_ == 0) - return 0; - - for (CORBA::ULong i = 0; - i != this->components_->length (); - ++i) + for (CORBA::ULong i = 0; i != this->components_.length (); ++i) { - if (component.tag == (*this->components_)[i].tag) + if (component.tag == this->components_[i].tag) { - component = (*this->components_)[i]; + component = this->components_[i]; return 1; } } @@ -283,10 +224,7 @@ TAO_Tagged_Components::get_component (IOP::TaggedComponent& component) const int TAO_Tagged_Components::encode (TAO_OutputCDR& cdr) const { - if (this->components_ == 0) - return 1; - - return (cdr << *this->components_); + return (cdr << this->components_); } int @@ -296,25 +234,14 @@ TAO_Tagged_Components::decode (TAO_InputCDR& cdr) this->orb_type_set_ = 0; this->code_sets_set_ = 0; - if (this->components_ == 0) - { - int retval = - this->create_components_i (); - - if (retval == -1) - ACE_ERROR ((LM_DEBUG, - "(%P|%t) TAO - TAO_Tagged_Components::decode ", - "create_components_i failed \n")); - - } - if ((cdr >> *this->components_) == 0) + if ((cdr >> this->components_) == 0) return 0; - CORBA::ULong l = this->components_->length (); + CORBA::ULong l = this->components_.length (); for (CORBA::ULong i = 0; i != l; ++i) { const IOP::TaggedComponent &component = - (*this->components_)[i]; + this->components_[i]; if (this->known_tag (component.tag)) this->set_known_component_i (component); } diff --git a/TAO/tao/Tagged_Components.h b/TAO/tao/Tagged_Components.h index 6608bfad5a8..fc93c8aa667 100644 --- a/TAO/tao/Tagged_Components.h +++ b/TAO/tao/Tagged_Components.h @@ -93,9 +93,11 @@ public: int decode (TAO_InputCDR& cdr); /** - * Read/Write access to the underlying MutipleComponentProfile. + * Read/Write access to the underlying + * MutipleComponentProfile. Added by request from Chris Hafey + * <chris@stentorsoft.com> */ - IOP::MultipleComponentProfile *components (void); + IOP::MultipleComponentProfile &components (void); private: /// Helper method to implement set_code_sets() @@ -114,9 +116,6 @@ private: int get_known_component_i (IOP::TaggedComponent& component) const; int get_component_i (IOP::TaggedComponent& component) const; - /// Helper method to create <this->components_> - int create_components_i (void); - /// Is <tag> a well-known component? int known_tag (IOP::ComponentId tag) const; @@ -135,7 +134,7 @@ private: /// The rest of the components, to be compliant we cannot drop a /// bunch of them. - IOP::MultipleComponentProfile *components_; + IOP::MultipleComponentProfile components_; // A flag for each component... CORBA::Octet orb_type_set_; diff --git a/TAO/tao/Tagged_Components.i b/TAO/tao/Tagged_Components.i index 65114bfccc0..d67dcc6e07b 100644 --- a/TAO/tao/Tagged_Components.i +++ b/TAO/tao/Tagged_Components.i @@ -4,11 +4,9 @@ ACE_INLINE TAO_Tagged_Components::TAO_Tagged_Components (void) - : orb_type_ (0) - , components_ (0) - , orb_type_set_ (0) - , code_sets_set_ (0) - + : orb_type_ (0), + orb_type_set_ (0), + code_sets_set_ (0) { } @@ -62,11 +60,8 @@ TAO_Tagged_Components::unique_tag (IOP::ComponentId tag) const || tag == IOP::TAG_DCE_NO_PIPES); } -ACE_INLINE IOP::MultipleComponentProfile * +ACE_INLINE IOP::MultipleComponentProfile& TAO_Tagged_Components::components (void) { - if (this->components_ != 0) - return this->components_; - - return 0; + return this->components_; } |