summaryrefslogtreecommitdiff
path: root/TAO/tao/Profile.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/tao/Profile.cpp')
-rw-r--r--TAO/tao/Profile.cpp43
1 files changed, 41 insertions, 2 deletions
diff --git a/TAO/tao/Profile.cpp b/TAO/tao/Profile.cpp
index 9879ff26ef4..6807655a876 100644
--- a/TAO/tao/Profile.cpp
+++ b/TAO/tao/Profile.cpp
@@ -10,6 +10,7 @@
#include "tao/CDR.h"
#include "tao/SystemException.h"
#include "tao/PolicyC.h"
+#include "tao/Endpoint.h"
#include "ace/ACE.h"
#include "ace/OS_NS_string.h"
@@ -254,8 +255,8 @@ TAO_Profile::decode (TAO_InputCDR& cdr)
encap_len));
}
- // Decode any additional endpoints per profile. (At the present,
- // only RTCORBA takes advantage of this feature.)
+ // Decode any additional endpoints per profile. This is used by RTCORBA
+ // and by IIOP when TAG_ALTERNATE_IIOP_ADDRESS components are present.
if (this->decode_endpoints () == -1)
{
return -1;
@@ -728,6 +729,36 @@ TAO_Profile::is_equivalent (const TAO_Profile *other)
return result;
}
+CORBA::Boolean
+TAO_Profile::compare_key (const TAO_Profile *other) const
+{
+ return (this->ref_object_key_ == other->ref_object_key_) ||
+ ((this->ref_object_key_ != 0 &&
+ other->ref_object_key_ != 0 &&
+ this->ref_object_key_->object_key() ==
+ other->ref_object_key_->object_key()));
+}
+
+TAO_Endpoint *
+TAO_Profile::first_filtered_endpoint (void)
+{
+ return this->endpoint()->next_filtered(this->orb_core_,0);
+}
+
+TAO_Endpoint *
+TAO_Profile::next_filtered_endpoint (TAO_Endpoint *source)
+{
+ if (source == 0)
+ return this->first_filtered_endpoint();
+ return this->endpoint()->next_filtered(this->orb_core_,this->endpoint());
+}
+
+void
+TAO_Profile::add_generic_endpoint (TAO_Endpoint *)
+{
+ // noop for the base type
+}
+
TAO_Service_Callbacks::Profile_Equivalence
TAO_Profile::is_equivalent_hook (const TAO_Profile *other)
{
@@ -760,6 +791,12 @@ TAO_Profile::encode_alternate_endpoints(void)
return 0;
}
+void
+TAO_Profile::remove_generic_endpoint (TAO_Endpoint *)
+{
+ // default for virtual methods, thus a no-op
+}
+
//@@ TAO_PROFILE_SPL_COMMENT_HOOK_END
//@@ TAO_PROFILE_SPL_METHODS_ADD_HOOK
@@ -898,6 +935,8 @@ TAO_Unknown_Profile::create_profile_body (TAO_OutputCDR &) const
return;
}
+
+
// *************************************************************
// Operators for TAO_opaque encoding and decoding
// *************************************************************