diff options
author | Phil Mesnier <mesnier_p@ociweb.com> | 2006-04-26 17:12:48 +0000 |
---|---|---|
committer | Phil Mesnier <mesnier_p@ociweb.com> | 2006-04-26 17:12:48 +0000 |
commit | ea0a29551d1c900778d55a81c62a46683f3c9350 (patch) | |
tree | 05a08d17ed7b625832acb49896659fb0beda830b /TAO/tao/Transport_Connector.h | |
parent | 74d774bbabfc76dd76f0477f845242aad1ad0eb6 (diff) | |
download | ATCD-ea0a29551d1c900778d55a81c62a46683f3c9350.tar.gz |
ChangeLog tag: Wed Apr 26 16:42:45 UTC 2006 Phil Mesnier <mesnier_p@ociweb.com>
Diffstat (limited to 'TAO/tao/Transport_Connector.h')
-rw-r--r-- | TAO/tao/Transport_Connector.h | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/TAO/tao/Transport_Connector.h b/TAO/tao/Transport_Connector.h index e29d0b251b3..f457ee5ec9a 100644 --- a/TAO/tao/Transport_Connector.h +++ b/TAO/tao/Transport_Connector.h @@ -41,6 +41,7 @@ class TAO_ORB_Core; class TAO_Connect_Strategy; class TAO_Transport; class TAO_Connection_Handler; +class TAO_LF_Multi_Event; namespace TAO { @@ -121,6 +122,14 @@ public: ACE_Time_Value *timeout ACE_ENV_ARG_DECL); + /// A variation on connect that will try simultanious connections + /// on all endpoints listed in the desc. + virtual TAO_Transport* parallel_connect ( + TAO::Profile_Transport_Resolver *r, + TAO_Transport_Descriptor_Interface *desc, + ACE_Time_Value *timeout + ACE_ENV_ARG_DECL); + /// Create a profile for this protocol and initialize it based on the /// encapsulation in @a cdr virtual TAO_Profile *create_profile ( @@ -137,6 +146,10 @@ public: //@@ TAO_CONNECTOR_SPL_PUBLIC_METHODS_ADD_HOOK protected: + /// A flag indicating the actual connector supports parallel connection + /// attempts. The base implementation alwayse returns 0. Override to return + /// non-zero if parallel connection attempts may be tried. + virtual int supports_parallel_connects (void) const; /// Create a profile with a given endpoint. virtual TAO_Profile *make_profile (ACE_ENV_SINGLE_ARG_DECL) = 0; @@ -151,6 +164,13 @@ protected: TAO_Transport_Descriptor_Interface &desc, ACE_Time_Value *timeout) = 0; + /// Make a connection using - not a pure virtual since not all + /// protocols support this. + virtual TAO_Transport* make_parallel_connection ( + TAO::Profile_Transport_Resolver *r, + TAO_Transport_Descriptor_Interface &desc, + ACE_Time_Value *timeout); + /// Cancel the passed cvs handler from the connector virtual int cancel_svc_handler ( TAO_Connection_Handler *svc_handler) = 0; @@ -175,6 +195,17 @@ protected: TAO_Transport *&transport, ACE_Time_Value *timeout); + /// In the case of a parallel connection attempt, we take an array of + /// transports, and wait on any of them. When the first one completes, + /// the rest are closed. + virtual bool wait_for_connection_completion( + TAO::Profile_Transport_Resolver *r, + TAO_Transport *&the_winner, + TAO_Transport **transport, + unsigned int count, + TAO_LF_Multi_Event *mev, + ACE_Time_Value *timeout); + /// Set the ORB Core pointer void orb_core (TAO_ORB_Core *orb_core); |