#include <SSL_SOCK_Connector.h>
Collaboration diagram for ACE_SSL_SOCK_Connector:
Public Types | |
typedef ACE_INET_Addr | PEER_ADDR |
typedef ACE_SSL_SOCK_Stream | PEER_STREAM |
Public Methods | |
ACE_SSL_SOCK_Connector (ACE_Reactor *reactor = ACE_Reactor::instance ()) | |
Default constructor. | |
ACE_SSL_SOCK_Connector (ACE_SSL_SOCK_Stream &new_stream, const ACE_Addr &remote_sap, const ACE_Time_Value *timeout = 0, const ACE_Addr &local_sap = ACE_Addr::sap_any, int reuse_addr = 0, int flags = 0, int perms = 0, int protocol_family = PF_INET, int protocol = 0, ACE_Reactor *reactor = ACE_Reactor::instance ()) | |
ACE_SSL_SOCK_Connector (ACE_SSL_SOCK_Stream &new_stream, const ACE_Addr &remote_sap, ACE_QoS_Params qos_params, const ACE_Time_Value *timeout = 0, const ACE_Addr &local_sap = ACE_Addr::sap_any, ACE_Protocol_Info *protocolinfo = 0, ACE_SOCK_GROUP g = 0, u_long flags = 0, int reuse_addr = 0, int perms = 0, int protocol_family = PF_INET, int protocol = 0, ACE_Reactor *reactor = ACE_Reactor::instance ()) | |
~ACE_SSL_SOCK_Connector (void) | |
Default dtor. | |
int | connect (ACE_SSL_SOCK_Stream &new_stream, const ACE_Addr &remote_sap, const ACE_Time_Value *timeout = 0, const ACE_Addr &local_sap = ACE_Addr::sap_any, int reuse_addr = 0, int flags = 0, int perms = 0, int protocol_family = PF_INET, int protocol = 0) |
int | connect (ACE_SSL_SOCK_Stream &new_stream, const ACE_Addr &remote_sap, ACE_QoS_Params qos_params, const ACE_Time_Value *timeout = 0, const ACE_Addr &local_sap = ACE_Addr::sap_any, ACE_Protocol_Info *protocolinfo = 0, ACE_SOCK_GROUP g = 0, u_long flags = 0, int reuse_addr = 0, int perms = 0, int protocol_family = PF_INET, int protocol = 0) |
int | complete (ACE_SSL_SOCK_Stream &new_stream, ACE_Addr *remote_sap = 0, const ACE_Time_Value *timeout = 0) |
int | reset_new_handle (ACE_HANDLE handle) |
Resets any event associations on this handle. | |
void | reactor (ACE_Reactor *r) |
Set the Reactor used when completing the SSL active connection. | |
ACE_Reactor* | reactor (void) const |
Return the Reactor used when completing the SSL active connection. | |
void | dump (void) const |
Dump the state of an object. | |
Public Attributes | |
ACE_ALLOC_HOOK_DECLARE | |
Declare the dynamic allocation hooks. | |
Protected Methods | |
int | ssl_connect (ACE_SSL_SOCK_Stream &new_stream) |
Complete blocking SSL active connection. | |
int | ssl_connect (ACE_SSL_SOCK_Stream &new_stream, const ACE_Time_Value *timeout) |
Complete non-blocking SSL active connection. | |
Private Attributes | |
ACE_SOCK_Connector | connector_ |
The class that does all of the non-secure socket connection. It is default contructed, and subsequently used by connect(). | |
ACE_Reactor* | reactor_ |
Pointer to the Reactor responsible for dispatching the event handler responsible for completing the SSL active connection. |
The ACE_SSL_SOCK_Connector doesn't have a socket of its own, i.e., it simply "borrows" the one from the ACE_SSL_SOCK_Stream that's being connected. The reason for this is that the underlying socket API doesn't use a "factory" socket to connect "data-mode" sockets. Therefore, there's no need to inherit ACE_SSL_SOCK_Connector from ACE_SSL_SOCK.
Since SSL is record-oriented, some additional steps must be taken to make the ACE_SSL_SOCK_Connector interact properly with the Reactor (if one is used) when performing non-blocking connect() calls. In particular, the ACE_SSL_SOCK_Connector registers an event handler with the Reactor set in the constructor or in the ACE_SSL_SOCK_Connector::reactor() method. If no Reactor is explicitly set, the singleton Reactor instance will be used.
|
|
|
|
|
Default constructor.
|
|
Actively connect and produce a <new_stream> if things go well. The <remote_sap> is the address that we are trying to connect with. The <timeout> is the amount of time to wait to connect. If it's 0 then we block indefinitely. If *timeout == {0, 0} then the connection is done using non-blocking mode. In this case, if the connection can't be made immediately the value of -1 is returned with <errno == EWOULDBLOCK>. If *timeout > {0, 0} then this is the amount of time to wait before timing out. If the time expires before the connection is made <errno == ETIME>. The <local_sap> is the value of local address to bind to. If it's the default value of then the user is letting the OS do the binding. If <reuse_addr> == 1 then the <local_addr> is reused, even if it hasn't been cleanedup yet. |
|
Actively connect and produce a <new_stream> if things go well. The <remote_sap> is the address that we are trying to connect with. The <qos_params> contains QoS parameters that are passed to RSVP. The <timeout> is the amount of time to wait to connect. If it's 0 then we block indefinitely. If *timeout == {0, 0} then the connection is done using non-blocking mode. In this case, if the connection can't be made immediately the value of -1 is returned with <errno == EWOULDBLOCK>. If *timeout > {0, 0} then this is the amount of time to wait before timing out. If the time expires before the connection is made <errno == ETIME>. The <local_sap> is the value of local address to bind to. If it's the default value of then the user is letting the OS do the binding. If <reuse_addr> == 1 then the <local_addr> is reused, even if it hasn't been cleanedup yet. |
|
Default dtor.
|
|
Try to complete a non-blocking connection. If connection completion is successful then <new_stream> contains the connected ACE_SSL_SOCK_Stream. If <remote_sap> is non-NULL then it will contain the address of the connected peer. |
|
Actively connect and produce a <new_stream> if things go well. The <remote_sap> is the address that we are trying to connect with. The <qos_params> contains QoS parameters that are passed to RSVP. The <timeout> is the amount of time to wait to connect. If it's 0 then we block indefinitely. If *timeout == {0, 0} then the connection is done using non-blocking mode. In this case, if the connection can't be made immediately the value of -1 is returned with <errno == EWOULDBLOCK>. If *timeout > {0, 0} then this is the amount of time to wait before timing out. If the time expires before the connection is made <errno == ETIME>. The <local_sap> is the value of local address to bind to. If it's the default value of then the user is letting the OS do the binding. If <reuse_addr> == 1 then the <local_addr> is reused, even if it hasn't been cleanedup yet. |
|
Actively connect and produce a <new_stream> if things go well. The <remote_sap> is the address that we are trying to connect with. The <timeout> is the amount of time to wait to connect. If it's 0 then we block indefinitely. If *timeout == {0, 0} then the connection is done using non-blocking mode. In this case, if the connection can't be made immediately the value of -1 is returned with <errno == EWOULDBLOCK>. If *timeout > {0, 0} then this is the amount of time to wait before timing out. If the time expires before the connection is made <errno == ETIME>. The <local_sap> is the value of local address to bind to. If it's the default value of then the user is letting the OS do the binding. If <reuse_addr> == 1 then the <local_addr> is reused, even if it hasn't been cleanedup yet. |
|
Dump the state of an object.
|
|
Return the Reactor used when completing the SSL active connection.
|
|
Set the Reactor used when completing the SSL active connection.
|
|
Resets any event associations on this handle.
|
|
Complete non-blocking SSL active connection.
|
|
Complete blocking SSL active connection.
|
|
Declare the dynamic allocation hooks.
|
|
The class that does all of the non-secure socket connection. It is default contructed, and subsequently used by connect().
|
|
Pointer to the Reactor responsible for dispatching the event handler responsible for completing the SSL active connection.
|