diff options
author | bala <balanatarajan@users.noreply.github.com> | 2000-09-17 11:56:46 +0000 |
---|---|---|
committer | bala <balanatarajan@users.noreply.github.com> | 2000-09-17 11:56:46 +0000 |
commit | 0552c286d5222a42592da2b2c6db4b0696310909 (patch) | |
tree | bd3eca8bb7896128e05722a18212281d95783959 /TAO/tao/Stub.i | |
parent | f1990d370226996c5f82dafb14de059b8f3f2109 (diff) | |
download | ATCD-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.i | 34 |
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; } |