# ACE_SOCK_Acceptor Class Reference

Defines a factory that creates new <ace_stream>s passively. More...

`#include <SOCK_Acceptor.h>`

Inheritance diagram for ACE_SOCK_Acceptor:

[legend]
Collaboration diagram for ACE_SOCK_Acceptor:

[legend]
List of all members.

## Public Types

typedef ACE_INET_Addr | PEER_ADDR
typedef ACE_SOCK_Stream | PEER_STREAM

## Public Member Functions

| ACE_SOCK_Acceptor (void)
| Default constructor.
| ACE_SOCK_Acceptor (const ACE_Addr &local_sap, int reuse_addr=0, int protocol_family=PF_UNSPEC, int backlog=ACE_DEFAULT_BACKLOG, int protocol=0)
| ACE_SOCK_Acceptor (const ACE_Addr &local_sap, ACE_Protocol_Info *protocolinfo, ACE_SOCK_GROUP g, u_long flags, int reuse_addr, int protocol_family=PF_UNSPEC, int backlog=ACE_DEFAULT_BACKLOG, int protocol=0)
int | open (const ACE_Addr &local_sap, int reuse_addr=0, int protocol_family=PF_UNSPEC, int backlog=ACE_DEFAULT_BACKLOG, int protocol=0)
int | open (const ACE_Addr &local_sap, ACE_Protocol_Info *protocolinfo, ACE_SOCK_GROUP g, u_long flags, int reuse_addr, int protocol_family=PF_UNSPEC, int backlog=ACE_DEFAULT_BACKLOG, int protocol=0)
int | close (void)
| Close the socket. Returns 0 on success and -1 on failure.
| ~ACE_SOCK_Acceptor (void)
| Default dtor.
int | accept (ACE_SOCK_Stream &new_stream, ACE_Addr *remote_addr=0, ACE_Time_Value *timeout=0, int restart=1, int reset_new_handle=0) const
int | accept (ACE_SOCK_Stream &new_stream, ACE_Accept_QoS_Params qos_params, ACE_Addr *remote_addr=0, ACE_Time_Value *timeout=0, int restart=1, int reset_new_handle=0) const
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_accept_start (ACE_Time_Value *timeout, int restart, int &in_blocking_mode) const
int | shared_accept_finish (ACE_SOCK_Stream new_stream, int in_blocking_mode, int reset_new_handle) const
int | shared_open (const ACE_Addr &local_sap, int protocol_family, int backlog)

## Private Member Functions

int | get_remote_addr (ACE_Addr &) const
| Do not allow this function to percolate up to this interface...

## Detailed Description

Defines a factory that creates new <ace_stream>s passively.

The ACE_SOCK_Acceptor has its own "passive-mode" socket. This serves as a factory to create so-called "data-mode" sockets, which are what the ACE_SOCK_Stream encapsulates. Therefore, by inheriting from ACE_SOCK, ACE_SOCK_Acceptor gets its very own socket.

## Member Typedef Documentation

typedef ACE_INET_Addr ACE_SOCK_Acceptor::PEER_ADDR

| Reimplemented in ACE_LSOCK_Acceptor, and ACE_MEM_Acceptor.

typedef ACE_SOCK_Stream ACE_SOCK_Acceptor::PEER_STREAM

| Reimplemented in ACE_LSOCK_Acceptor, and ACE_MEM_Acceptor.

## Constructor & Destructor Documentation

ACE_BEGIN_VERSIONED_NAMESPACE_DECL ACE_SOCK_Acceptor::ACE_SOCK_Acceptor | ( | void |  | ) |

| Default constructor.

ACE_SOCK_Acceptor::ACE_SOCK_Acceptor | ( | const ACE_Addr & | local_sap,
|  | int | reuse_addr = `0`,
|  | int | protocol_family = `PF_UNSPEC`,
|  | int | backlog = `ACE_DEFAULT_BACKLOG`,
|  | int | protocol = `0`
| ) |

| Initialize a passive-mode BSD-style acceptor socket (no QoS). local_sap is the address that we're going to listen for connections on. If reuse_addr is 1 then we'll use the `SO_REUSEADDR` to reuse this address.

ACE_SOCK_Acceptor::ACE_SOCK_Acceptor | ( | const ACE_Addr & | local_sap,
|  | ACE_Protocol_Info * | protocolinfo,
|  | ACE_SOCK_GROUP | g,
|  | u_long | flags,
|  | int | reuse_addr,
|  | int | protocol_family = `PF_UNSPEC`,
|  | int | backlog = `ACE_DEFAULT_BACKLOG`,
|  | int | protocol = `0`
| ) |

| Initialize a passive-mode QoS-enabled acceptor socket. Returns 0 on success and -1 on failure.

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

| Default dtor.

## Member Function Documentation

int ACE_SOCK_Acceptor::accept | ( | ACE_SOCK_Stream & | new_stream,
|  | ACE_Accept_QoS_Params | qos_params,
|  | ACE_Addr * | remote_addr = `0`,
|  | ACE_Time_Value * | timeout = `0`,
|  | int | restart = `1`,
|  | int | reset_new_handle = `0`
| ) | const

Accept a new <ace_sock_stream> connection using the QoS information in <qos_params>. A <timeout> of 0 means block forever, a <timeout> of {0, 0} means poll. <restart> == 1 means "restart if interrupted," i.e., if errno == EINTR. Note that <new_stream> inherits the "blocking mode" of <this> <ace_sock_acceptor>, i.e., if <this> acceptor factory is in non-blocking mode, the <net_stream> will be in non-blocking mode and vice versa.

Reimplemented in ACE_MEM_Acceptor.

int ACE_SOCK_Acceptor::accept | ( | ACE_SOCK_Stream & | new_stream,
|  | ACE_Addr * | remote_addr = `0`,
|  | ACE_Time_Value * | timeout = `0`,
|  | int | restart = `1`,
|  | int | reset_new_handle = `0`
| ) | const

Accept a new <ace_sock_stream> connection. A <timeout> of 0 means block forever, a <timeout> of {0, 0} means poll. <restart> == 1 means "restart if interrupted," i.e., if errno == EINTR. Note that <new_stream> inherits the "blocking mode" of <this> <ace_sock_acceptor>, i.e., if <this> acceptor factory is in non-blocking mode, the <net_stream> will be in non-blocking mode and vice versa.

Reimplemented in ACE_LOCK_SOCK_Acceptor< ACE_LOCK >, and ACE_MEM_Acceptor.

int ACE_SOCK_Acceptor::close | ( | void |  | ) |

| Close the socket. Returns 0 on success and -1 on failure. Reimplemented from ACE_SOCK.

void ACE_SOCK_Acceptor::dump | ( | void |  | ) | const

| Dump the state of an object. Reimplemented from ACE_SOCK. Reimplemented in ACE_LSOCK_Acceptor, and ACE_MEM_Acceptor.

int ACE_SOCK_Acceptor::get_remote_addr | ( | ACE_Addr & |  | ) | const`[private]`

| Do not allow this function to percolate up to this interface... Reimplemented from ACE_SOCK.

int ACE_SOCK_Acceptor::open | ( | const ACE_Addr & | local_sap,
|  | ACE_Protocol_Info * | protocolinfo,
|  | ACE_SOCK_GROUP | g,
|  | u_long | flags,
|  | int | reuse_addr,
|  | int | protocol_family = `PF_UNSPEC`,
|  | int | backlog = `ACE_DEFAULT_BACKLOG`,
|  | int | protocol = `0`
| ) |

| Initialize a passive-mode QoS-enabled acceptor socket. Returns 0 on success and -1 on failure. Reimplemented in ACE_MEM_Acceptor.

int ACE_SOCK_Acceptor::open | ( | const ACE_Addr & | local_sap,
|  | int | reuse_addr = `0`,
|  | int | protocol_family = `PF_UNSPEC`,
|  | int | backlog = `ACE_DEFAULT_BACKLOG`,
|  | int | protocol = `0`
| ) |

| Initialize a passive-mode BSD-style acceptor socket (no QoS). <local_sap> is the address that we're going to listen for connections on. If <reuse_addr> is 1 then we'll use the <so_reuseaddr> to reuse this address. Returns 0 on success and -1 on failure. Reimplemented in ACE_LSOCK_Acceptor, and ACE_MEM_Acceptor.

int ACE_SOCK_Acceptor::shared_accept_finish | ( | ACE_SOCK_Stream | new_stream,
|  | int | in_blocking_mode,
|  | int | reset_new_handle
| ) | const`[protected]`

| Perform operations that must occur after <ACE_OS::accept> is called.

int ACE_SOCK_Acceptor::shared_accept_start | ( | ACE_Time_Value * | timeout,
|  | int | restart,
|  | int & | in_blocking_mode
| ) | const`[protected]`

| Perform operations that must occur before <ACE_OS::accept> is called.

int ACE_SOCK_Acceptor::shared_open | ( | const ACE_Addr & | local_sap,
|  | int | protocol_family,
|  | int | backlog
| ) | `[protected]`

| This method factors out the common <open> code and is called by both the QoS-enabled <open> method and the BSD-style <open> method.

## Member Data Documentation

ACE_SOCK_Acceptor::ACE_ALLOC_HOOK_DECLARE

| Declare the dynamic allocation hooks. Reimplemented from ACE_SOCK. Reimplemented in ACE_LSOCK_Acceptor, and ACE_MEM_Acceptor.

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

- SOCK_Acceptor.h
- SOCK_Acceptor.cpp
- SOCK_Acceptor.inl