diff options
Diffstat (limited to 'TAO/orbsvcs/orbsvcs/FaultTolerance/FT_Invocation_Endpoint_Selectors.h')
-rw-r--r-- | TAO/orbsvcs/orbsvcs/FaultTolerance/FT_Invocation_Endpoint_Selectors.h | 43 |
1 files changed, 21 insertions, 22 deletions
diff --git a/TAO/orbsvcs/orbsvcs/FaultTolerance/FT_Invocation_Endpoint_Selectors.h b/TAO/orbsvcs/orbsvcs/FaultTolerance/FT_Invocation_Endpoint_Selectors.h index 660b40c44a9..9d6032ae498 100644 --- a/TAO/orbsvcs/orbsvcs/FaultTolerance/FT_Invocation_Endpoint_Selectors.h +++ b/TAO/orbsvcs/orbsvcs/FaultTolerance/FT_Invocation_Endpoint_Selectors.h @@ -57,36 +57,35 @@ public: /// Implementation for FT. Please refer to /// $TAO_ROOT/tao/Invocation_Endpoint_Selectors.h for details of /// documentation. - virtual void select_endpoint (TAO_GIOP_Invocation *invocation + virtual void select_endpoint (TAO::Profile_Transport_Resolver *r, + ACE_Time_Value *val ACE_ENV_ARG_DECL); - virtual void next (TAO_GIOP_Invocation *invocation - ACE_ENV_ARG_DECL_WITH_DEFAULTS); - virtual void forward (TAO_GIOP_Invocation *invocation, - const TAO_MProfile &mprofile - ACE_ENV_ARG_DECL_WITH_DEFAULTS); - virtual void success (TAO_GIOP_Invocation *invocation); - virtual void close_connection (TAO_GIOP_Invocation *invocation); - protected: - - int select_endpoint_i (TAO_GIOP_Invocation *invoc + /// Select the primary and try connecting to it. + bool select_primary (TAO::Profile_Transport_Resolver *r, + ACE_Time_Value *val + ACE_ENV_ARG_DECL); + + /// Select the secondary and try connecting to it. Returns true if + /// successfull. + bool select_secondary (TAO::Profile_Transport_Resolver *r, + ACE_Time_Value *val ACE_ENV_ARG_DECL); - int select_primary (TAO_GIOP_Invocation *invocation - ACE_ENV_ARG_DECL); - - int check_profile_for_primary (TAO_GIOP_Invocation *, - TAO_Profile * - ACE_ENV_ARG_DECL); + /// Helper method that tries to establish connections with all the + /// endpoints in the profile. + bool try_connect (TAO::Profile_Transport_Resolver *r, + TAO_Profile *profile, + ACE_Time_Value *max_wait_time + ACE_ENV_ARG_DECL); -private: + /// Helper method that checks whether the profile is a primary or + /// not. + bool check_profile_for_primary (TAO_Profile * + ACE_ENV_ARG_DECL); - /// Is the primary alive? The default is yes. - CORBA::Boolean is_primary_alive_; - /// Has the profile list been rewound - CORBA::Boolean is_rewound_; }; #if defined (__ACE_INLINE__) |