summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormarina <marina@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2000-10-11 23:25:24 +0000
committermarina <marina@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2000-10-11 23:25:24 +0000
commit7d67c942ccba42a9ac98e06f3e88a1591df8c234 (patch)
treee29b2e742ff308edf9a4fda3bda667ce962316b6
parentc2f00616256b3996aed666df95a3ccbc117a56ee (diff)
downloadATCD-7d67c942ccba42a9ac98e06f3e88a1591df8c234.tar.gz
ChangeLogTag:Wed Oct 11 18:05:15 2000 Marina Spivak <marina@cs.wustl.edu>
-rw-r--r--TAO/ChangeLogs/ChangeLog-02a22
-rw-r--r--TAO/tao/IIOP_Profile.cpp23
-rw-r--r--TAO/tao/IIOP_Profile.h45
-rw-r--r--TAO/tao/PortableServer/POA.cpp9
-rw-r--r--TAO/tao/Profile.cpp6
-rw-r--r--TAO/tao/Profile.h6
-rw-r--r--TAO/tao/SHMIOP_Profile.cpp24
-rw-r--r--TAO/tao/SHMIOP_Profile.h45
-rw-r--r--TAO/tao/UIOP_Profile.cpp22
-rw-r--r--TAO/tao/UIOP_Profile.h45
10 files changed, 110 insertions, 137 deletions
diff --git a/TAO/ChangeLogs/ChangeLog-02a b/TAO/ChangeLogs/ChangeLog-02a
index 90b4c8e9970..cedbe30a626 100644
--- a/TAO/ChangeLogs/ChangeLog-02a
+++ b/TAO/ChangeLogs/ChangeLog-02a
@@ -1,3 +1,25 @@
+Wed Oct 11 18:05:15 2000 Marina Spivak <marina@cs.wustl.edu>
+
+ * tao/IIOP_Profile.cpp
+ * tao/IIOP_Profile.h
+ * tao/Profile.cpp
+ * tao/Profile.h
+ * tao/SHMIOP_Profile.cpp
+ * tao/SHMIOP_Profile.h
+ * tao/UIOP_Profile.cpp
+ * tao/UIOP_Profile.h
+ * tao/PortableServer/POA.cpp
+ * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Profile.h
+ * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Profile.cpp:
+
+ Changed the time of profile's endpoints encoding into a tagged
+ component (<encode_endpoints> method in *_Profile) from
+ profile encoding to mprofile creation, i.e., from
+ *_Profile::encode to *_Acceptor_Filter::fill_mprofile. In other
+ words, removed 'lazy evaluation' of endpoints encoding. This
+ fixes multithreading issues with multiple threads attempting to
+ encode one profile at the same time.
+
Wed Oct 11 17:58:35 2000 Michael Kircher <Michael.Kircher@mchp.siemens.de>
* examples/Simple/time-date/svc.conf: Added the CORBA LOC
diff --git a/TAO/tao/IIOP_Profile.cpp b/TAO/tao/IIOP_Profile.cpp
index d7aba426245..4a6ac8db12d 100644
--- a/TAO/tao/IIOP_Profile.cpp
+++ b/TAO/tao/IIOP_Profile.cpp
@@ -36,7 +36,6 @@ TAO_IIOP_Profile::TAO_IIOP_Profile (const ACE_INET_Addr &addr,
endpoint_ (addr,
orb_core->orb_params ()->use_dotted_decimal_addresses ()),
count_ (1),
- endpoints_encoded_ (0),
object_key_ (object_key),
tagged_profile_ ()
{
@@ -51,7 +50,6 @@ TAO_IIOP_Profile::TAO_IIOP_Profile (const char* host,
: TAO_Profile (TAO_TAG_IIOP_PROFILE, orb_core, version),
endpoint_ (host, port, addr),
count_ (1),
- endpoints_encoded_ (0),
object_key_ (object_key),
tagged_profile_ ()
{
@@ -65,7 +63,6 @@ TAO_IIOP_Profile::TAO_IIOP_Profile (const char *string,
TAO_GIOP_Version (TAO_DEF_GIOP_MAJOR, TAO_DEF_GIOP_MINOR)),
endpoint_ (),
count_ (1),
- endpoints_encoded_ (0),
object_key_ (),
tagged_profile_ ()
{
@@ -79,7 +76,6 @@ TAO_IIOP_Profile::TAO_IIOP_Profile (TAO_ORB_Core *orb_core)
TAO_GIOP_Version (TAO_DEF_GIOP_MAJOR, TAO_DEF_GIOP_MINOR)),
endpoint_ (),
count_ (1),
- endpoints_encoded_ (0),
object_key_ (),
tagged_profile_ ()
{
@@ -561,18 +557,6 @@ TAO_IIOP_Profile::create_profile_body (TAO_OutputCDR &encap) const
// OCTET SEQUENCE for object key
encap << this->object_key_;
-#if (TAO_HAS_RT_CORBA == 1)
- // For now, use/transfer multiple endpoints per profile only with
- // RTCORBA.
-
- // Encode profile endpoints.
- TAO_IIOP_Profile *p =
- ACE_const_cast (TAO_IIOP_Profile *, this);
- if (!endpoints_encoded_)
- p->encode_endpoints ();
-
-#endif /* TAO_HAS_RT_CORBA == 1 */
-
if (this->version_.major > 1
|| this->version_.minor > 0)
this->tagged_components ().encode (encap);
@@ -582,7 +566,7 @@ int
TAO_IIOP_Profile::encode_endpoints (void)
{
// Create a data structure and fill it with endpoint info for wire
- // transfer.
+ // transfer.
// We include information for the head of the list
// together with other endpoints because even though its addressing
// info is transmitted using standard ProfileBody components, its
@@ -626,9 +610,8 @@ TAO_IIOP_Profile::encode_endpoints (void)
}
// Add component with encoded endpoint data to this profile's
- // TaggedComponents.
+ // TaggedComponents.
tagged_components_.set_component (tagged_component);
- this->endpoints_encoded_ = 1;
return 1;
}
@@ -685,7 +668,5 @@ TAO_IIOP_Profile::decode_endpoints (void)
}
}
- this->endpoints_encoded_ = 1;
return 1;
}
-
diff --git a/TAO/tao/IIOP_Profile.h b/TAO/tao/IIOP_Profile.h
index d93779d556b..a53f797b86b 100644
--- a/TAO/tao/IIOP_Profile.h
+++ b/TAO/tao/IIOP_Profile.h
@@ -99,6 +99,23 @@ public:
virtual int encode (TAO_OutputCDR &stream) const;
// Encode this profile in a stream, i.e. marshal it.
+ virtual int encode_endpoints (void);
+ // Encodes this profile's endpoints into a tagged component.
+ // This is done only if RTCORBA is enabled, since currently this is
+ // the only case when we have more than one endpoint per profile.
+ //
+ // Endpoints are transmitted using TAO-proprietory tagged component.
+ // Component tag is TAO_TAG_ENDPOINTS and component data is an
+ // encapsulation of a sequence of structs, each representing a
+ // single endpoint. Data format is specified in iiop_endpoins.pidl.
+ //
+ // Multiple TAG_ALTERNATE_IIOP_ADDRESS components can be used
+ // instead of a single proprietory component to transmit multiple
+ // endpoints. This is somewhat slower and less convenient. Also,
+ // TAG_ALTERNATE_IIOP_ADDRESS does not provide for transmission of
+ // endpoint priorities.
+ //
+
virtual const TAO_ObjectKey &object_key (void) const;
// @@ deprecated. return a reference to the Object Key.
@@ -107,7 +124,7 @@ public:
// allocated for the returned key.
virtual TAO_Endpoint *endpoint (void);
- // Return pointer to the head of this profile's endpoints list.
+ // Return pointer to the head of this profile's endpoints list.
void add_endpoint (TAO_IIOP_Endpoint *endp);
// Add <endp> to this profile's list of endpoints (it is inserted
@@ -133,24 +150,6 @@ private:
void create_profile_body (TAO_OutputCDR &cdr) const;
// Creates an encapsulation of the ProfileBody struct in the <cdr>
- int encode_endpoints (void);
- // Helper for <create_profile_body>.
- // Encodes this profile's endpoints into a tagged component.
- // This is done only if RTCORBA is enabled, since currently this is
- // the only case when we have more than one endpoint per profile.
- //
- // Endpoints are transmitted using TAO-proprietory tagged component.
- // Component tag is TAO_TAG_ENDPOINTS and component data is an
- // encapsulation of a sequence of structs, each representing a
- // single endpoint. Data format is specified in iiop_endpoins.pidl.
- //
- // Multiple TAG_ALTERNATE_IIOP_ADDRESS components can be used
- // instead of a single proprietory component to transmit multiple
- // endpoints. This is somewhat slower and less convenient. Also,
- // TAG_ALTERNATE_IIOP_ADDRESS does not provide for transmission of
- // endpoint priorities.
- //
-
int decode_endpoints (void);
// Helper for <decode>. Decodes endpoints from a tagged component.
// Decode only if RTCORBA is enabled. Furthermore, we may not find
@@ -169,19 +168,15 @@ protected:
// list contains more than just the head, only when RTCORBA is enabled.
// However, in the near future, this will be used in nonRT
// mode as well, e.g., to support TAG_ALTERNATE_IIOP_ADDRESS
- // feature.
+ // feature.
// Addressing info of the default endpoint, i.e., head of the list,
// is transmitted using standard IIOP ProfileBody components. See
// <encode_endpoints> method documentation above for how the rest of
- // the endpoint list is transmitted.
+ // the endpoint list is transmitted.
size_t count_;
// Number of endpoints in the list headed by <endpoint_>.
- int endpoints_encoded_;
- // Flag indicating whether endpoints have already been encoded
- // into a tagged component.
-
private:
TAO_ObjectKey object_key_;
diff --git a/TAO/tao/PortableServer/POA.cpp b/TAO/tao/PortableServer/POA.cpp
index 6a43a9fd309..d1304cef9c1 100644
--- a/TAO/tao/PortableServer/POA.cpp
+++ b/TAO/tao/PortableServer/POA.cpp
@@ -3850,6 +3850,15 @@ fill_mprofile (const TAO_ObjectKey &object_key,
return -1;
}
+ // Encode endpoints.
+ for (TAO_PHandle i = 0;
+ i < mprofile.profile_count ();
+ ++i)
+ {
+ TAO_Profile *profile = mprofile.get_profile (i);
+ profile->encode_endpoints ();
+ }
+
return 0;
}
#endif /* TAO_HAS_RT_CORBA == 1 */
diff --git a/TAO/tao/Profile.cpp b/TAO/tao/Profile.cpp
index 722ffaa3071..4fc7790e2f4 100644
--- a/TAO/tao/Profile.cpp
+++ b/TAO/tao/Profile.cpp
@@ -261,6 +261,12 @@ TAO_Unknown_Profile::encode (TAO_OutputCDR &stream) const
return (stream << this->body_);
}
+int
+TAO_Unknown_Profile::encode_endpoints (void)
+{
+ return 0;
+}
+
const TAO_ObjectKey &
TAO_Unknown_Profile::object_key (void) const
{
diff --git a/TAO/tao/Profile.h b/TAO/tao/Profile.h
index 26b56bbde96..d3c8de7ff9c 100644
--- a/TAO/tao/Profile.h
+++ b/TAO/tao/Profile.h
@@ -98,6 +98,11 @@ public:
virtual int encode (TAO_OutputCDR &stream) const = 0;
// Encode this profile in a stream, i.e. marshal it.
+ virtual int encode_endpoints (void) = 0;
+ // Encodes this profile's endpoints into a tagged component.
+ // This is done only if RTCORBA is enabled, since currently this is
+ // the only case when we have more than one endpoint per profile.
+
virtual const TAO_ObjectKey &object_key (void) const = 0;
// @@ deprecated. return a reference to the Object Key.
@@ -217,6 +222,7 @@ public:
virtual char* to_string (CORBA::Environment &ACE_TRY_ENV);
virtual int decode (TAO_InputCDR& cdr);
virtual int encode (TAO_OutputCDR &stream) const;
+ virtual int encode_endpoints (void);
virtual const TAO_ObjectKey &object_key (void) const;
virtual TAO_ObjectKey *_key (void) const;
virtual TAO_Endpoint *endpoint (void);
diff --git a/TAO/tao/SHMIOP_Profile.cpp b/TAO/tao/SHMIOP_Profile.cpp
index bc1cf4e18b6..d2dfec0a291 100644
--- a/TAO/tao/SHMIOP_Profile.cpp
+++ b/TAO/tao/SHMIOP_Profile.cpp
@@ -36,7 +36,6 @@ TAO_SHMIOP_Profile::TAO_SHMIOP_Profile (const ACE_MEM_Addr &addr,
endpoint_ (addr,
orb_core->orb_params ()->use_dotted_decimal_addresses ()),
count_ (1),
- endpoints_encoded_ (0),
object_key_ (object_key),
tagged_profile_ ()
{
@@ -51,7 +50,6 @@ TAO_SHMIOP_Profile::TAO_SHMIOP_Profile (const char* host,
: TAO_Profile (TAO_TAG_SHMEM_PROFILE, orb_core, version),
endpoint_ (host, port, addr),
count_ (1),
- endpoints_encoded_ (0),
object_key_ (object_key),
tagged_profile_ ()
{
@@ -65,7 +63,6 @@ TAO_SHMIOP_Profile::TAO_SHMIOP_Profile (const char *string,
TAO_GIOP_Version (TAO_DEF_GIOP_MAJOR, TAO_DEF_GIOP_MINOR)),
endpoint_ (),
count_ (1),
- endpoints_encoded_ (0),
object_key_ (),
tagged_profile_ ()
{
@@ -79,7 +76,6 @@ TAO_SHMIOP_Profile::TAO_SHMIOP_Profile (TAO_ORB_Core *orb_core)
TAO_GIOP_Version (TAO_DEF_GIOP_MAJOR, TAO_DEF_GIOP_MINOR)),
endpoint_ (),
count_ (1),
- endpoints_encoded_ (0),
object_key_ (),
tagged_profile_ ()
{
@@ -277,7 +273,7 @@ TAO_SHMIOP_Profile::parse_string (const char *string,
tmp[length] = '\0';
this->endpoint_.host_ = tmp._retn ();
-
+
ACE_INET_Addr host_addr;
if (ACE_OS::strcmp (this->endpoint_.host_.in (), "") == 0)
@@ -307,7 +303,7 @@ TAO_SHMIOP_Profile::parse_string (const char *string,
this->endpoint_.host_ = (const char *) tmp_host;
}
}
-
+
if (this->endpoint_.object_addr_.set (this->endpoint_.port_,
this->endpoint_.host_.in ()) == -1)
{
@@ -318,7 +314,7 @@ TAO_SHMIOP_Profile::parse_string (const char *string,
ACE_TEXT ("TAO (%P|%t) ACE_INET_Addr::set () failed")));
}
return -1;
-
+
}
start = ++okd; // increment past the object key separator
@@ -524,18 +520,6 @@ TAO_SHMIOP_Profile::create_profile_body (TAO_OutputCDR &encap) const
// OCTET SEQUENCE for object key
encap << this->object_key_;
-#if (TAO_HAS_RT_CORBA == 1)
- // For now, use/transfer multiple endpoints per profile only with
- // RTCORBA.
-
- // Encode profile endpoints.
- TAO_SHMIOP_Profile *p =
- ACE_const_cast (TAO_SHMIOP_Profile *, this);
- if (!endpoints_encoded_)
- p->encode_endpoints ();
-
-#endif /* TAO_HAS_RT_CORBA == 1 */
-
if (this->version_.major > 1
|| this->version_.minor > 0)
this->tagged_components ().encode (encap);
@@ -590,7 +574,6 @@ TAO_SHMIOP_Profile::encode_endpoints (void)
// Add component with encoded endpoint data to this profile's
// TaggedComponents.
tagged_components_.set_component (tagged_component);
- this->endpoints_encoded_ = 1;
return 1;
}
@@ -647,7 +630,6 @@ TAO_SHMIOP_Profile::decode_endpoints (void)
}
}
- this->endpoints_encoded_ = 1;
return 1;
}
diff --git a/TAO/tao/SHMIOP_Profile.h b/TAO/tao/SHMIOP_Profile.h
index de0cc9ae0cf..1b6ac80c382 100644
--- a/TAO/tao/SHMIOP_Profile.h
+++ b/TAO/tao/SHMIOP_Profile.h
@@ -97,6 +97,23 @@ public:
virtual int encode (TAO_OutputCDR &stream) const;
// Encode this profile in a stream, i.e. marshal it.
+ virtual int encode_endpoints (void);
+ // Encodes this profile's endpoints into a tagged component.
+ // This is done only if RTCORBA is enabled, since currently this is
+ // the only case when we have more than one endpoint per profile.
+ //
+ // Endpoints are transmitted using TAO-proprietory tagged component.
+ // Component tag is TAO_TAG_ENDPOINTS and component data is an
+ // encapsulation of a sequence of structs, each representing a
+ // single endpoint. Data format is specified in iiop_endpoins.pidl.
+ //
+ // Multiple a la TAG_ALTERNATE_IIOP_ADDRESS components can be used
+ // instead of a single proprietory component to transmit multiple
+ // endpoints. This is somewhat slower and less convenient. Also,
+ // TAG_ALTERNATE_IIOP_ADDRESS does not provide for transmission of
+ // endpoint priorities.
+ //
+
virtual const TAO_ObjectKey &object_key (void) const;
// @@ deprecated. return a reference to the Object Key.
@@ -105,7 +122,7 @@ public:
// allocated for the returned key.
virtual TAO_Endpoint *endpoint (void);
- // Return pointer to the head of this profile's endpoints list.
+ // Return pointer to the head of this profile's endpoints list.
void add_endpoint (TAO_SHMIOP_Endpoint *endp);
// Add <endp> to this profile's list of endpoints (it is inserted
@@ -129,24 +146,6 @@ private:
void create_profile_body (TAO_OutputCDR &cdr) const;
// Create an encapsulation of the struct ProfileBody in <cdr>
-
- int encode_endpoints (void);
- // Helper for <create_profile_body>.
- // Encodes this profile's endpoints into a tagged component.
- // This is done only if RTCORBA is enabled, since currently this is
- // the only case when we have more than one endpoint per profile.
- //
- // Endpoints are transmitted using TAO-proprietory tagged component.
- // Component tag is TAO_TAG_ENDPOINTS and component data is an
- // encapsulation of a sequence of structs, each representing a
- // single endpoint. Data format is specified in iiop_endpoins.pidl.
- //
- // Multiple a la TAG_ALTERNATE_IIOP_ADDRESS components can be used
- // instead of a single proprietory component to transmit multiple
- // endpoints. This is somewhat slower and less convenient. Also,
- // TAG_ALTERNATE_IIOP_ADDRESS does not provide for transmission of
- // endpoint priorities.
- //
int decode_endpoints (void);
// Helper for <decode>. Decodes endpoints from a tagged component.
@@ -164,19 +163,15 @@ private:
// list contains more than just the head, only when RTCORBA is enabled.
// However, in the near future, this will be used in nonRT
// mode as well, e.g., to support TAG_ALTERNATE_IIOP_ADDRESS-style
- // feature.
+ // feature.
// Addressing info of the default endpoint, i.e., head of the list,
// is transmitted using standard SHMIOP ProfileBody components. See
// <encode_endpoints> method documentation above for how the rest of
- // the endpoint list is transmitted.
+ // the endpoint list is transmitted.
size_t count_;
// Number of endpoints in the list headed by <endpoint_>.
- int endpoints_encoded_;
- // Flag indicating whether endpoints have already been encoded
- // into a tagged component.
-
TAO_ObjectKey object_key_;
// object_key associated with this profile.
diff --git a/TAO/tao/UIOP_Profile.cpp b/TAO/tao/UIOP_Profile.cpp
index 1aeaeb66de7..a9d8b2794cb 100644
--- a/TAO/tao/UIOP_Profile.cpp
+++ b/TAO/tao/UIOP_Profile.cpp
@@ -37,7 +37,6 @@ TAO_UIOP_Profile::TAO_UIOP_Profile (const ACE_UNIX_Addr &addr,
: TAO_Profile (TAO_TAG_UIOP_PROFILE, orb_core, version),
endpoint_ (addr),
count_ (1),
- endpoints_encoded_ (0),
object_key_ (object_key),
tagged_profile_ ()
{
@@ -51,7 +50,6 @@ TAO_UIOP_Profile::TAO_UIOP_Profile (const char *,
: TAO_Profile (TAO_TAG_UIOP_PROFILE, orb_core, version),
endpoint_ (addr),
count_ (1),
- endpoints_encoded_ (0),
object_key_ (object_key),
tagged_profile_ ()
{
@@ -66,7 +64,6 @@ TAO_UIOP_Profile::TAO_UIOP_Profile (const char *string,
TAO_DEF_GIOP_MINOR)),
endpoint_ (),
count_ (1),
- endpoints_encoded_ (0),
object_key_ (),
tagged_profile_ ()
{
@@ -81,7 +78,6 @@ TAO_UIOP_Profile::TAO_UIOP_Profile (TAO_ORB_Core *orb_core)
TAO_DEF_GIOP_MINOR)),
endpoint_ (),
count_ (1),
- endpoints_encoded_ (0),
object_key_ (),
tagged_profile_ ()
{
@@ -475,18 +471,6 @@ TAO_UIOP_Profile::create_profile_body (TAO_OutputCDR &encap) const
// OCTET SEQUENCE for object key
encap << this->object_key_;
-#if (TAO_HAS_RT_CORBA == 1)
- // For now, use/transfer multiple endpoints per profile only with
- // RTCORBA.
-
- // Encode profile endpoints.
- TAO_UIOP_Profile *p =
- ACE_const_cast (TAO_UIOP_Profile *, this);
- if (!endpoints_encoded_)
- p->encode_endpoints ();
-
-#endif /* TAO_HAS_RT_CORBA == 1 */
-
if (this->version_.major > 1
|| this->version_.minor > 0)
this->tagged_components ().encode (encap);
@@ -496,7 +480,7 @@ int
TAO_UIOP_Profile::encode_endpoints (void)
{
// Create a data structure and fill it with endpoint info for wire
- // transfer.
+ // transfer.
// We include information for the head of the list
// together with other endpoints because even though its addressing
// info is transmitted using standard ProfileBody components, its
@@ -538,9 +522,8 @@ TAO_UIOP_Profile::encode_endpoints (void)
}
// Add component with encoded endpoint data to this profile's
- // TaggedComponents.
+ // TaggedComponents.
tagged_components_.set_component (tagged_component);
- this->endpoints_encoded_ = 1;
return 1;
}
@@ -612,7 +595,6 @@ TAO_UIOP_Profile::decode_endpoints (void)
}
}
- this->endpoints_encoded_ = 1;
return 1;
}
diff --git a/TAO/tao/UIOP_Profile.h b/TAO/tao/UIOP_Profile.h
index 7c599891ecb..cea5415ab16 100644
--- a/TAO/tao/UIOP_Profile.h
+++ b/TAO/tao/UIOP_Profile.h
@@ -98,6 +98,23 @@ public:
virtual int encode (TAO_OutputCDR &stream) const;
// Encode this profile in a stream, i.e. marshal it.
+ virtual int encode_endpoints (void);
+ // Encodes this profile's endpoints into a tagged component.
+ // This is done only if RTCORBA is enabled, since currently this is
+ // the only case when we have more than one endpoint per profile.
+ //
+ // Endpoints are transmitted using TAO-proprietory tagged component.
+ // Component tag is TAO_TAG_ENDPOINTS and component data is an
+ // encapsulation of a sequence of structs, each representing a
+ // single endpoint. Data format is specified in uiop_endpoins.pidl.
+ //
+ // Multiple a la TAG_ALTERNATE_IIOP_ADDRESS components can be used
+ // instead of a single proprietory component to transmit multiple
+ // endpoints. This is somewhat slower and less convenient. Also,
+ // TAG_ALTERNATE_IIOP_ADDRESS does not provide for transmission of
+ // endpoint priorities.
+ //
+
virtual const TAO_ObjectKey &object_key (void) const;
// @@ deprecated. return a reference to the Object Key.
@@ -106,7 +123,7 @@ public:
// allocated for the returned key.
virtual TAO_Endpoint *endpoint (void);
- // Return pointer to the head of this profile's endpoints list.
+ // Return pointer to the head of this profile's endpoints list.
void add_endpoint (TAO_UIOP_Endpoint *endp);
// Add <endp> to this profile's list of endpoints (it is inserted
@@ -131,24 +148,6 @@ private:
void create_profile_body (TAO_OutputCDR &cdr) const;
// Create an encapsulation of the struct ProfileBody in <cdr>
- int encode_endpoints (void);
- // Helper for <create_profile_body>.
- // Encodes this profile's endpoints into a tagged component.
- // This is done only if RTCORBA is enabled, since currently this is
- // the only case when we have more than one endpoint per profile.
- //
- // Endpoints are transmitted using TAO-proprietory tagged component.
- // Component tag is TAO_TAG_ENDPOINTS and component data is an
- // encapsulation of a sequence of structs, each representing a
- // single endpoint. Data format is specified in uiop_endpoins.pidl.
- //
- // Multiple a la TAG_ALTERNATE_IIOP_ADDRESS components can be used
- // instead of a single proprietory component to transmit multiple
- // endpoints. This is somewhat slower and less convenient. Also,
- // TAG_ALTERNATE_IIOP_ADDRESS does not provide for transmission of
- // endpoint priorities.
- //
-
int decode_endpoints (void);
// Helper for <decode>. Decodes endpoints from a tagged component.
// Decode only if RTCORBA is enabled. Furthermore, we may not find
@@ -165,19 +164,15 @@ private:
// list contains more than just the head, only when RTCORBA is enabled.
// However, in the near future, this will be used in nonRT
// mode as well, e.g., to support a la TAG_ALTERNATE_IIOP_ADDRESS
- // feature.
+ // feature.
// Addressing info of the default endpoint, i.e., head of the list,
// is transmitted using standard UIOP ProfileBody components. See
// <encode_endpoints> method documentation above for how the rest of
- // the endpoint list is transmitted.
+ // the endpoint list is transmitted.
size_t count_;
// Number of endpoints in the list headed by <endpoint_>.
- int endpoints_encoded_;
- // Flag indicating whether endpoints have already been encoded
- // into a tagged component.
-
TAO_ObjectKey object_key_;
// object_key associated with this profile.