summaryrefslogtreecommitdiff
path: root/TAO/tao/IIOP_Profile.h
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/tao/IIOP_Profile.h')
-rw-r--r--TAO/tao/IIOP_Profile.h27
1 files changed, 19 insertions, 8 deletions
diff --git a/TAO/tao/IIOP_Profile.h b/TAO/tao/IIOP_Profile.h
index 2a3ecffb1bd..ee145ad9b53 100644
--- a/TAO/tao/IIOP_Profile.h
+++ b/TAO/tao/IIOP_Profile.h
@@ -102,10 +102,25 @@ protected:
* one endpoint.
*
* Currently, a profile contains more than one endpoint, i.e.,
- * 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.
+ * list contains more than just the head, only for two cases
+ * (1) when RTCORBA is enabled and
+ * (2) the ORB is initialized with -ORBPreferredInterfaces option.
+ * However, in the near future, this will be used in for mode as
+ * well, e.g., to support TAG_ALTERNATE_IIOP_ADDRESS feature.
+ *
+ * This is probably as good a place to discuss how the list of
+ * endpoints is used for #2. If the ORB is configured to use
+ * preferred interfaces for invocation, TAO creates an endpoint per
+ * preferred interface. To be clear, every tuple
+ * <destination:target> will have an endpoint. What TAO essentially
+ * does is that creates it multiple endpoints so that the invocation
+ * code path can use existing iterating techniques to try one
+ * preferred interface after another (if the first did not work). If
+ * the ORB is configured with -ORBEnforcePreferredInterface set to
+ * false in addition to the ORBPreferredInterfaces option , TAO
+ * creates another endpoint with the preferred bit set to null, so
+ * that the invocation code can fall back to a TCP stack returned
+ * local address.
* 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
@@ -117,9 +132,5 @@ protected:
CORBA::ULong count_;
};
-#if defined (__ACE_INLINE__)
-# include "tao/IIOP_Profile.i"
-#endif /* __ACE_INLINE__ */
-
#include /**/ "ace/post.h"
#endif /* TAO_IIOP_PROFILE_H */