summaryrefslogtreecommitdiff
path: root/TAO/tao/Stub.i
diff options
context:
space:
mode:
authorbala <balanatarajan@users.noreply.github.com>2000-09-17 11:56:46 +0000
committerbala <balanatarajan@users.noreply.github.com>2000-09-17 11:56:46 +0000
commit0552c286d5222a42592da2b2c6db4b0696310909 (patch)
treebd3eca8bb7896128e05722a18212281d95783959 /TAO/tao/Stub.i
parentf1990d370226996c5f82dafb14de059b8f3f2109 (diff)
downloadATCD-0552c286d5222a42592da2b2c6db4b0696310909.tar.gz
ChangeLogTag: Sun Sep 17 06:37:37 2000 Balachandran Natarajan <bala@cs.wustl.edu>
Diffstat (limited to 'TAO/tao/Stub.i')
-rw-r--r--TAO/tao/Stub.i34
1 files changed, 34 insertions, 0 deletions
diff --git a/TAO/tao/Stub.i b/TAO/tao/Stub.i
index 7060817c3c9..7b8cf9b6346 100644
--- a/TAO/tao/Stub.i
+++ b/TAO/tao/Stub.i
@@ -30,6 +30,7 @@ TAO_Stub::reset_first_locate_request (void)
this->first_locate_request_ = 1;
}
+
ACE_INLINE void
TAO_Stub::reset_base (void)
{
@@ -40,6 +41,28 @@ TAO_Stub::reset_base (void)
this->set_profile_in_use_i (base_profiles_.get_next ());
}
+
+ACE_INLINE CORBA::Boolean
+TAO_Stub::service_profile_selection (void)
+{
+ ACE_MT (ACE_GUARD_RETURN (ACE_Lock,
+ guard,
+ *this->profile_lock_ptr_,
+ 0));
+
+ TAO_Profile *profile = 0;
+
+ this->orb_core_->service_profile_selection (this->base_profiles_,
+ profile);
+ if (profile)
+ {
+ this->set_profile_in_use_i (profile);
+ return 1;
+ }
+
+ return 0;
+}
+
ACE_INLINE void
TAO_Stub::forward_back_one (void)
{
@@ -219,6 +242,17 @@ TAO_Stub::next_profile_retry (void)
}
else
{
+ // Check whether the loaded services have something to say about
+ // this condition
+ TAO_Profile *prof = 0;
+ this->orb_core_->service_profile_reselection (this,
+ prof);
+
+ // If the service is loaded and has a profile then try it.
+ if (prof)
+ {
+ return 1;
+ }
this->reset_profiles_i ();
return 0;
}