Merge pull request #2216 from jwillemsen/jwi-cxxversionchecks
[ACE_TAO.git] / ACE / protocols / ace / INet / SSL_Proxy_Connector.h
blobf6dd0a397bc78e8790f59301bbb817f067c729b9
1 /**
2 * @file SSL_Proxy_Connector.h
4 * @author Martin Corino <mcorino@remedy.nl>
5 */
7 #ifndef ACE_SSL_PROXY_CONNECTOR_H
8 #define ACE_SSL_PROXY_CONNECTOR_H
10 #include /**/ "ace/pre.h"
12 #include "ace/SSL/SSL_SOCK_Stream.h"
13 #include "ace/Time_Value.h"
15 ACE_BEGIN_VERSIONED_NAMESPACE_DECL
17 namespace ACE
19 namespace INet
21 /**
22 * @class ACE_INet_SSL_Proxy_Connector
24 * @brief Provides the functionality to attach an SSL_SOCK_Stream
25 * to an established socket of a proxy tunneling service.
27 * The <connect> method will finalize the setting up an SSL connection
28 * over the tunnel by performing an SSL handhake after setting the socket
29 * in the @c SSL_SOCK_Stream.
31 class SSL_Proxy_Connector
33 public:
34 SSL_Proxy_Connector ();
35 ~SSL_Proxy_Connector ();
37 /**
38 * Actively connect to an already connected proxy peer, producing a
39 * connected @c ACE_SSL_SOCK_Stream object if the connection succeeds.
40 * This method uses the provided connection (socket) handle to initialize
41 * the @c ACE_SSL_SOCK_Stream object and than finalizes the connection
42 * by performing the SSL handshake.
44 int connect (ACE_SSL_SOCK_Stream& new_stream,
45 ACE_HANDLE proxy_handle,
46 const ACE_Time_Value *timeout = 0);
47 protected:
48 /// Complete non-blocking SSL active connection.
49 int ssl_connect (ACE_SSL_SOCK_Stream &new_stream,
50 const ACE_Time_Value *timeout);
55 ACE_END_VERSIONED_NAMESPACE_DECL
57 #include /**/ "ace/post.h"
58 #endif /* ACE_SSL_PROXY_CONNECTOR_H */