# ACE_SOCK_SEQPACK_Connector Class Reference

Defines a factory that actively connects to a remote IP address and TCP port, creating a new `ACE_SOCK_SEQPACK_Association` object. More...

`#include <SOCK_SEQPACK_Connector.h>`

List of all members.

## Public Types

typedef ACE_Multihomed_INET_Addr | PEER_ADDR
typedef ACE_SOCK_SEQPACK_Association | PEER_STREAM

## Public Member Functions

| ACE_SOCK_SEQPACK_Connector (void)
| Default constructor.
| ACE_SOCK_SEQPACK_Connector (ACE_SOCK_SEQPACK_Association &new_association, 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=132)
| ACE_SOCK_SEQPACK_Connector (ACE_SOCK_SEQPACK_Association &new_association, const ACE_Addr &remote_sap, const ACE_Time_Value *timeout, const ACE_Multihomed_INET_Addr &local_sap, int reuse_addr=0, int flags=0, int perms=0, int protocol=132)
int | connect (ACE_SOCK_SEQPACK_Association &new_association, 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=132)
int | connect (ACE_SOCK_SEQPACK_Association &new_association, const ACE_Addr &remote_sap, const ACE_Time_Value *timeout, const ACE_Multihomed_INET_Addr &local_sap, int reuse_addr=0, int flags=0, int perms=0, int protocol=132)
| ~ACE_SOCK_SEQPACK_Connector (void)
| Default dtor.
int | complete (ACE_SOCK_SEQPACK_Association &new_association, 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 | dump (void) const
| Dump the state of an object.

## Public Attributes

| ACE_ALLOC_HOOK_DECLARE
| Declare the dynamic allocation hooks.

## Protected Member Functions

int | shared_open (ACE_SOCK_SEQPACK_Association &new_association, int protocol_family, int protocol, int reuse_addr)
int | shared_open (ACE_SOCK_SEQPACK_Association &new_association, int protocol_family, int protocol, ACE_Protocol_Info *protocolinfo, ACE_SOCK_GROUP g, u_long flags, int reuse_addr)
int | shared_connect_start (ACE_SOCK_SEQPACK_Association &new_association, const ACE_Time_Value *timeout, const ACE_Addr &local_sap)
| Perform operations that must be called before <ACE_OS::connect>.
int | shared_connect_start (ACE_SOCK_SEQPACK_Association &new_association, const ACE_Time_Value *timeout, const ACE_Multihomed_INET_Addr &local_sap)
int | shared_connect_finish (ACE_SOCK_SEQPACK_Association &new_association, const ACE_Time_Value *timeout, int result)
| Perform operations that must be called after <ACE_OS::connect>.

## Detailed Description

Defines a factory that actively connects to a remote IP address and TCP port, creating a new `ACE_SOCK_SEQPACK_Association` object.

The `ACE_SOCK_SEQPACK_Connector` doesn't have a socket of its own, i.e., it simply "borrows" the one from the `ACE_SOCK_SEQPACK_Association` 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_SOCK_SEQPACK_Connector` from `ACE_SOCK`. A nice side-effect of this is that `ACE_SOCK_SEQPACK_Connector` objects do not store state so they can be used reentrantly in multithreaded programs.

## Member Typedef Documentation

typedef ACE_Multihomed_INET_Addr ACE_SOCK_SEQPACK_Connector::PEER_ADDR

typedef ACE_SOCK_SEQPACK_Association ACE_SOCK_SEQPACK_Connector::PEER_STREAM

## Constructor & Destructor Documentation

ACE_INLINE ACE_SOCK_SEQPACK_Connector::ACE_SOCK_SEQPACK_Connector | ( | void |  | ) |

| Default constructor.

ACE_SOCK_SEQPACK_Connector::ACE_SOCK_SEQPACK_Connector | ( | ACE_SOCK_SEQPACK_Association & | new_association,
|  | 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 = `132`
| ) |

Actively connect to a peer, producing a connected `ACE_SOCK_SEQPACK_Association` object if the connection succeeds.

Parameters:

  | new_association | The `ACE_SOCK_SEQPACK_Association` object that will be connected to the peer.
  | remote_sap | The address that we are trying to connect to. The protocol family of `remote_sap` is used for the connected socket. That is, if `remote_sap` contains an IPv6 address, a socket with family PF_INET6 will be used, else it will be PF_INET.

  timeout

  Pointer to an `ACE_Time_Value` object with amount of time to wait to connect. If the pointer is 0 then the call blocks until the connection attempt is complete, whether it succeeds or fails. If *timeout == {0, 0} then the connection is done using nonblocking mode. In this case, if the connection can't be made immediately, this method returns -1 and errno == EWOULDBLOCK. If *timeout > {0, 0} then this is the maximum amount of time to wait before timing out; if the specified amount of time passes before the connection is made, this method returns -1 and errno == ETIME. Note the difference between this case and when a blocking connect is attmpted that TCP times out - in the latter case, errno will be ETIMEDOUT.

  | local_sap | (optional) The local address to bind to. If it's the default value of `ACE_Addr::sap_any` then the OS will choose an unused port.
  | reuse_addr | (optional) If the value is 1, the local address (`local_sap`) is reused, even if it hasn't been cleaned up yet.
  | flags | Ignored.
  | perms | Ignored.
  | protocol | (optional) If value is 0, default SOCK_STREAM protocol is selected by kernel (typically TCP).

Returns:
  Returns 0 if the connection succeeds. If it fails, -1 is returned and errno contains a specific error code.

ACE_SOCK_SEQPACK_Connector::ACE_SOCK_SEQPACK_Connector | ( | ACE_SOCK_SEQPACK_Association & | new_association,
|  | const ACE_Addr & | remote_sap,
|  | const ACE_Time_Value * | timeout,
|  | const ACE_Multihomed_INET_Addr & | local_sap,
|  | int | reuse_addr = `0`,
|  | int | flags = `0`,
|  | int | perms = `0`,
|  | int | protocol = `132`
| ) |

Actively connect to a peer, producing a connected `ACE_SOCK_SEQPACK_Association` object if the connection succeeds.

Parameters:

  | new_association | The `ACE_SOCK_SEQPACK_Association` object that will be connected to the peer.
  | remote_sap | The address that we are trying to connect to. The protocol family of `remote_sap` is used for the connected socket. That is, if `remote_sap` contains an IPv6 address, a socket with family PF_INET6 will be used, else it will be PF_INET.

  timeout

  Pointer to an `ACE_Time_Value` object with amount of time to wait to connect. If the pointer is 0 then the call blocks until the connection attempt is complete, whether it succeeds or fails. If *timeout == {0, 0} then the connection is done using nonblocking mode. In this case, if the connection can't be made immediately, this method returns -1 and errno == EWOULDBLOCK. If *timeout > {0, 0} then this is the maximum amount of time to wait before timing out; if the specified amount of time passes before the connection is made, this method returns -1 and errno == ETIME. Note the difference between this case and when a blocking connect is attmpted that TCP times out - in the latter case, errno will be ETIMEDOUT.

  | local_sap | (optional) The set of local addresses for SCTP to bind to.
  | reuse_addr | (optional) If the value is 1, the local address (`local_sap`) is reused, even if it hasn't been cleaned up yet.
  | flags | Ignored.
  | perms | Ignored.
  | protocol | (optional) If value is 0, default SOCK_STREAM protocol is selected by kernel (typically TCP).

Returns:
  Returns 0 if the connection succeeds. If it fails, -1 is returned and errno contains a specific error code.

ACE_BEGIN_VERSIONED_NAMESPACE_DECL ACE_INLINE ACE_SOCK_SEQPACK_Connector::~ACE_SOCK_SEQPACK_Connector | ( | void |  | ) |

| Default dtor.

## Member Function Documentation

int ACE_SOCK_SEQPACK_Connector::complete | ( | ACE_SOCK_SEQPACK_Association & | new_association,
|  | ACE_Addr * | remote_sap = `0`,
|  | const ACE_Time_Value * | timeout = `0`
| ) |

Try to complete a nonblocking connection that was begun by a previous call to connect with a {0, 0} ACE_Time_Value timeout.

See also:
  connect().

Parameters:

  | new_association | The `ACE_SOCK_SEQPACK_Association` object that will be connected to the peer.
  | remote_sap | If non-0, it points to the `ACE_INET_Addr` object that will contain the address of the connected peer.
  | timeout | Same values and return value possibilites as for connect().

See also:
  connect().

int ACE_SOCK_SEQPACK_Connector::connect | ( | ACE_SOCK_SEQPACK_Association & | new_association,
|  | const ACE_Addr & | remote_sap,
|  | const ACE_Time_Value * | timeout,
|  | const ACE_Multihomed_INET_Addr & | local_sap,
|  | int | reuse_addr = `0`,
|  | int | flags = `0`,
|  | int | perms = `0`,
|  | int | protocol = `132`
| ) |

Actively connect to a peer, producing a connected `ACE_SOCK_SEQPACK_Association` object if the connection succeeds.

Parameters:

  | new_association | The `ACE_SOCK_SEQPACK_Association` object that will be connected to the peer.
  | remote_sap | The address that we are trying to connect to. The protocol family of `remote_sap` is used for the connected socket. That is, if `remote_sap` contains an IPv6 address, a socket with family PF_INET6 will be used, else it will be PF_INET.

  timeout

  Pointer to an `ACE_Time_Value` object with amount of time to wait to connect. If the pointer is 0 then the call blocks until the connection attempt is complete, whether it succeeds or fails. If *timeout == {0, 0} then the connection is done using nonblocking mode. In this case, if the connection can't be made immediately, this method returns -1 and errno == EWOULDBLOCK. If *timeout > {0, 0} then this is the maximum amount of time to wait before timing out; if the specified amount of time passes before the connection is made, this method returns -1 and errno == ETIME. Note the difference between this case and when a blocking connect is attmpted that TCP times out - in the latter case, errno will be ETIMEDOUT.

  | local_sap | (optional) The set of local addresses for SCTP to bind to.
  | reuse_addr | (optional) If the value is 1, the local address (`local_sap`) is reused, even if it hasn't been cleaned up yet.
  | flags | Ignored.
  | perms | Ignored.
  | protocol | (optional) If value is 0, default SOCK_STREAM protocol is selected by kernel (typically TCP).

Returns:
  Returns 0 if the connection succeeds. If it fails, -1 is returned and errno contains a specific error code.

int ACE_SOCK_SEQPACK_Connector::connect | ( | ACE_SOCK_SEQPACK_Association & | new_association,
|  | 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 = `132`
| ) |

Actively connect to a peer, producing a connected `ACE_SOCK_SEQPACK_Association` object if the connection succeeds.

Parameters:

  | new_association | The `ACE_SOCK_SEQPACK_Association` object that will be connected to the peer.
  | remote_sap | The address that we are trying to connect to. The protocol family of `remote_sap` is used for the connected socket. That is, if `remote_sap` contains an IPv6 address, a socket with family PF_INET6 will be used, else it will be PF_INET.

  timeout

  Pointer to an `ACE_Time_Value` object with amount of time to wait to connect. If the pointer is 0 then the call blocks until the connection attempt is complete, whether it succeeds or fails. If *timeout == {0, 0} then the connection is done using nonblocking mode. In this case, if the connection can't be made immediately, this method returns -1 and errno == EWOULDBLOCK. If *timeout > {0, 0} then this is the maximum amount of time to wait before timing out; if the specified amount of time passes before the connection is made, this method returns -1 and errno == ETIME. Note the difference between this case and when a blocking connect is attmpted that TCP times out - in the latter case, errno will be ETIMEDOUT.

  | local_sap | (optional) The local address to bind to. If it's the default value of `ACE_Addr::sap_any` then the OS will choose an unused port.
  | reuse_addr | (optional) If the value is 1, the local address (`local_sap`) is reused, even if it hasn't been cleaned up yet.
  | flags | Ignored.
  | perms | Ignored.
  | protocol | (optional) If value is 0, default SOCK_STREAM protocol is selected by kernel (typically TCP).

Returns:
  Returns 0 if the connection succeeds. If it fails, -1 is returned and errno contains a specific error code.

ACE_BEGIN_VERSIONED_NAMESPACE_DECL void ACE_SOCK_SEQPACK_Connector::dump | ( | void |  | ) | const

| Dump the state of an object.

ACE_INLINE int ACE_SOCK_SEQPACK_Connector::reset_new_handle | ( | ACE_HANDLE | handle | ) |

| Resets any event associations on this handle.

int ACE_SOCK_SEQPACK_Connector::shared_connect_finish | ( | ACE_SOCK_SEQPACK_Association & | new_association,
|  | const ACE_Time_Value * | timeout,
|  | int | result
| ) | `[protected]`

| Perform operations that must be called after <ACE_OS::connect>.

int ACE_SOCK_SEQPACK_Connector::shared_connect_start | ( | ACE_SOCK_SEQPACK_Association & | new_association,
|  | const ACE_Time_Value * | timeout,
|  | const ACE_Multihomed_INET_Addr & | local_sap
| ) | `[protected]`

int ACE_SOCK_SEQPACK_Connector::shared_connect_start | ( | ACE_SOCK_SEQPACK_Association & | new_association,
|  | const ACE_Time_Value * | timeout,
|  | const ACE_Addr & | local_sap
| ) | `[protected]`

| Perform operations that must be called before <ACE_OS::connect>.

int ACE_SOCK_SEQPACK_Connector::shared_open | ( | ACE_SOCK_SEQPACK_Association & | new_association,
|  | int | protocol_family,
|  | int | protocol,
|  | ACE_Protocol_Info * | protocolinfo,
|  | ACE_SOCK_GROUP | g,
|  | u_long | flags,
|  | int | reuse_addr
| ) | `[protected]`

| Perform operations that ensure the socket is opened using QoS-enabled semantics.

int ACE_SOCK_SEQPACK_Connector::shared_open | ( | ACE_SOCK_SEQPACK_Association & | new_association,
|  | int | protocol_family,
|  | int | protocol,
|  | int | reuse_addr
| ) | `[protected]`

| Perform operations that ensure the socket is opened using BSD-style semantics (no QoS).

## Member Data Documentation

ACE_SOCK_SEQPACK_Connector::ACE_ALLOC_HOOK_DECLARE

| Declare the dynamic allocation hooks.

The documentation for this class was generated from the following files:

- SOCK_SEQPACK_Connector.h
- SOCK_SEQPACK_Connector.cpp
- SOCK_SEQPACK_Connector.inl