diff options
author | Johnny Willemsen <jwillemsen@remedy.nl> | 2004-08-09 11:53:16 +0000 |
---|---|---|
committer | Johnny Willemsen <jwillemsen@remedy.nl> | 2004-08-09 11:53:16 +0000 |
commit | 5eab0611201c153800002942b0bd5d06743085a5 (patch) | |
tree | 9db9c40b62eb2bf93e31f5fbf3a479f450148a10 /TAO/tao/Transport_Connector.h | |
parent | 659b1d7d4d4d401cff367f8d6e53f07eaf75057a (diff) | |
download | ATCD-5eab0611201c153800002942b0bd5d06743085a5.tar.gz |
ChangeLogTag: Mon Aug 9 11:51:12 UTC 2004 Johnny Willemsen <jwillemsen@remedy.nl>
Diffstat (limited to 'TAO/tao/Transport_Connector.h')
-rw-r--r-- | TAO/tao/Transport_Connector.h | 62 |
1 files changed, 47 insertions, 15 deletions
diff --git a/TAO/tao/Transport_Connector.h b/TAO/tao/Transport_Connector.h index b142cf90b9e..73347185874 100644 --- a/TAO/tao/Transport_Connector.h +++ b/TAO/tao/Transport_Connector.h @@ -35,6 +35,7 @@ class TAO_MProfile; class TAO_ORB_Core; class TAO_Connect_Strategy; class TAO_Transport; +class TAO_Connection_Handler; namespace TAO { @@ -58,10 +59,10 @@ class TAO_Export TAO_Connector { public: - /// default constructor. + /// Default constructor. TAO_Connector (CORBA::ULong tag); - /// the destructor. + /// The destructor. virtual ~TAO_Connector (void); /** @@ -75,12 +76,14 @@ public: /// Parse a string containing a URL style IOR and return an /// MProfile. - int make_mprofile (const char *ior, - TAO_MProfile &mprofile - ACE_ENV_ARG_DECL); + int make_mprofile ( + const char *ior, + TAO_MProfile &mprofile + ACE_ENV_ARG_DECL); /// Initialize object and register with reactor. - virtual int open (TAO_ORB_Core *orb_core) = 0; + virtual int open ( + TAO_ORB_Core *orb_core) = 0; /// Shutdown Connector bridge and concrete Connector. virtual int close (void) = 0; @@ -90,18 +93,21 @@ public: * connect () method so it can be called from the invocation code * independent of the actual transport protocol in use. */ - virtual TAO_Transport* connect (TAO::Profile_Transport_Resolver *r, - TAO_Transport_Descriptor_Interface *desc, - ACE_Time_Value *timeout - ACE_ENV_ARG_DECL); + virtual TAO_Transport* 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 (TAO_InputCDR& cdr) = 0; + virtual TAO_Profile *create_profile ( + TAO_InputCDR& cdr) = 0; /// Check that the prefix of the provided endpoint is valid for use /// with a given pluggable protocol. - virtual int check_prefix (const char *endpoint) = 0; + virtual int check_prefix ( + const char *endpoint) = 0; /// Return the object key delimiter to use or expect. virtual char object_key_delimiter (void) const = 0; @@ -115,9 +121,35 @@ protected: /// remote *_Addr's which have not been done during IOR decode. virtual int set_validate_endpoint (TAO_Endpoint *endpoint) = 0; - virtual TAO_Transport* make_connection (TAO::Profile_Transport_Resolver *r, - TAO_Transport_Descriptor_Interface &desc, - ACE_Time_Value *timeout) = 0; + /// Make a connection + virtual TAO_Transport* make_connection ( + TAO::Profile_Transport_Resolver *r, + TAO_Transport_Descriptor_Interface &desc, + ACE_Time_Value *timeout) = 0; + + /// Cancel the passed cvs handler from the connector + virtual int cancel_svc_handler ( + TAO_Connection_Handler *svc_handler) = 0; + + /// Check whether the connection is not closed + /** + * @retval 0 The connection happens to be not closed, but is now open + * because an other thread managed to open the handler + * @retval -1 The connection is closed + */ + virtual int check_connection_closure ( + TAO_Connection_Handler *connection_handler); + + /** + * Wait for connection completion. We have a transport that is not + * connected yet, wait until it is connected. + * @retval true When we could use @a transport + * @return false When we can't use the @a transport + */ + virtual bool wait_for_connection_completion( + TAO::Profile_Transport_Resolver *r, + TAO_Transport *&transport, + ACE_Time_Value *timeout); /// Set the ORB Core pointer void orb_core (TAO_ORB_Core *orb_core); |