summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbala <balanatarajan@users.noreply.github.com>2003-02-20 17:00:06 +0000
committerbala <balanatarajan@users.noreply.github.com>2003-02-20 17:00:06 +0000
commit317d73ab248696382fbdadd5cffd61c5c98baafa (patch)
tree6147270e247e7317b31ce7431cf068b4bbdb54a6
parent6ecbbc9aa8e02f237331fa58cc61a5e4cadc4777 (diff)
downloadATCD-317d73ab248696382fbdadd5cffd61c5c98baafa.tar.gz
ChangeLogTag: Thu Feb 20 12:10:13 2003 Balachandran Natarajan <bala@isis-server.isis.vanderbilt.edu>
-rw-r--r--TAO/tao/ChangeLog12
-rw-r--r--TAO/tao/ClientRequestInfo_i.cpp83
-rw-r--r--TAO/tao/Tagged_Components.cpp115
-rw-r--r--TAO/tao/Tagged_Components.h11
-rw-r--r--TAO/tao/Tagged_Components.i15
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_;
}