ACE 8.0.0
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Public Attributes | Protected Member Functions | Private Member Functions | List of all members
ACE_SOCK_Acceptor Class Reference

Defines a factory that creates new ACE_Streams passively. More...

#include <SOCK_Acceptor.h>

Inheritance diagram for ACE_SOCK_Acceptor:
Inheritance graph
[legend]
Collaboration diagram for ACE_SOCK_Acceptor:
Collaboration graph
[legend]

Public Types

typedef ACE_INET_Addr PEER_ADDR
 
typedef ACE_SOCK_Stream PEER_STREAM
 

Public Member Functions

 ACE_SOCK_Acceptor ()
 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, int ipv6_only=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 ipv6_only=0)
 Initialize a passive-mode QoS-enabled acceptor socket.
 
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 ipv6_only=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 ipv6_only=0)
 
int close ()
 Close the socket. Returns 0 on success and -1 on failure.
 
 ~ACE_SOCK_Acceptor ()
 Default dtor.
 
int accept (ACE_SOCK_Stream &new_stream, ACE_Addr *remote_addr=0, ACE_Time_Value *timeout=0, bool restart=true, bool reset_new_handle=false) const
 
int accept (ACE_SOCK_Stream &new_stream, ACE_Accept_QoS_Params qos_params, ACE_Addr *remote_addr=0, ACE_Time_Value *timeout=0, bool restart=true, bool reset_new_handle=false) const
 
void dump () const
 Dump the state of an object.
 
- Public Member Functions inherited from ACE_SOCK
int set_option (int level, int option, void *optval, int optlen) const
 Wrapper around the setsockopt system call.
 
int get_option (int level, int option, void *optval, int *optlen) const
 Wrapper around the getsockopt system call.
 
int close ()
 
int get_local_addr (ACE_Addr &) const
 
int get_remote_addr (ACE_Addr &) const
 
void dump () const
 Dump the state of an object.
 
int open (int type, int protocol_family, int protocol, int reuse_addr)
 Wrapper around the BSD-style socket system call (no QoS).
 
int open (int type, int protocol_family, int protocol, ACE_Protocol_Info *protocolinfo, ACE_SOCK_GROUP g, u_long flags, int reuse_addr)
 Wrapper around the QoS-enabled WSASocket function.
 
- Public Member Functions inherited from ACE_IPC_SAP
int control (int cmd, void *) const
 Interface for <ioctl>.
 
int enable (int value) const
 
int disable (int value) const
 
ACE_HANDLE get_handle () const
 Get the underlying handle.
 
void set_handle (ACE_HANDLE handle)
 Set the underlying handle.
 
void dump () const
 Dump the state of an object.
 

Public Attributes

 ACE_ALLOC_HOOK_DECLARE
 Declare the dynamic allocation hooks.
 
- Public Attributes inherited from ACE_SOCK
 ACE_ALLOC_HOOK_DECLARE
 Declare the dynamic allocation hooks.
 
- Public Attributes inherited from ACE_IPC_SAP
 ACE_ALLOC_HOOK_DECLARE
 Declare the dynamic allocation hooks.
 

Protected Member Functions

int shared_accept_start (ACE_Time_Value *timeout, bool restart, int &in_blocking_mode) const
 
int shared_accept_finish (ACE_SOCK_Stream new_stream, int in_blocking_mode, bool reset_new_handle) const
 
int shared_open (const ACE_Addr &local_sap, int protocol_family, int backlog, int ipv6_only)
 
- Protected Member Functions inherited from ACE_SOCK
 ACE_SOCK (int type, int protocol_family, int protocol=0, int reuse_addr=0)
 
 ACE_SOCK (int type, int protocol_family, int protocol, ACE_Protocol_Info *protocolinfo, ACE_SOCK_GROUP g, u_long flags, int reuse_addr)
 
 ACE_SOCK ()
 
 ~ACE_SOCK ()=default
 Protected destructor.
 
- Protected Member Functions inherited from ACE_IPC_SAP
 ACE_IPC_SAP ()
 Default constructor.
 
 ~ACE_IPC_SAP ()
 Protected destructor.
 

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_Streams 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

◆ PEER_ADDR

◆ PEER_STREAM

Constructor & Destructor Documentation

◆ ACE_SOCK_Acceptor() [1/3]

ACE_SOCK_Acceptor::ACE_SOCK_Acceptor ( )

Default constructor.

◆ ACE_SOCK_Acceptor() [2/3]

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,
int ipv6_only = 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. ipv6_only is used when opening a IPv6 acceptor. If non-zero, the socket will only accept connections from IPv6 peers. If zero the socket will accept both IPv4 and v6 if it is able to.

◆ ACE_SOCK_Acceptor() [3/3]

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,
int ipv6_only = 0 )

Initialize a passive-mode QoS-enabled acceptor socket.

◆ ~ACE_SOCK_Acceptor()

ACE_SOCK_Acceptor::~ACE_SOCK_Acceptor ( )
inline

Default dtor.

Member Function Documentation

◆ accept() [1/2]

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,
bool restart = true,
bool reset_new_handle = false ) 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 == true 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 new_stream will be in non-blocking mode and vice versa.

◆ accept() [2/2]

int ACE_SOCK_Acceptor::accept ( ACE_SOCK_Stream & new_stream,
ACE_Addr * remote_addr = 0,
ACE_Time_Value * timeout = 0,
bool restart = true,
bool reset_new_handle = false ) const

Accept a new ACE_SOCK_Stream connection. A timeout of 0 means block forever, a timeout of {0, 0} means poll. restart == true 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 new_stream will be in non-blocking mode and vice versa.

◆ close()

int ACE_SOCK_Acceptor::close ( )

Close the socket. Returns 0 on success and -1 on failure.

◆ dump()

void ACE_SOCK_Acceptor::dump ( ) const

Dump the state of an object.

◆ get_remote_addr()

int ACE_SOCK_Acceptor::get_remote_addr ( ACE_Addr & ) const
private

Do not allow this function to percolate up to this interface...

◆ open() [1/2]

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,
int ipv6_only = 0 )

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

◆ open() [2/2]

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,
int ipv6_only = 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. ipv6_only is used when opening a IPv6 acceptor. If non-zero, the socket will only accept connections from IPv6 peers. If zero the socket will accept both IPv4 and v6 if it is able to.

Return values
Returns0 on success and -1 on failure.

◆ shared_accept_finish()

int ACE_SOCK_Acceptor::shared_accept_finish ( ACE_SOCK_Stream new_stream,
int in_blocking_mode,
bool reset_new_handle ) const
protected

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

◆ shared_accept_start()

int ACE_SOCK_Acceptor::shared_accept_start ( ACE_Time_Value * timeout,
bool restart,
int & in_blocking_mode ) const
protected

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

◆ shared_open()

int ACE_SOCK_Acceptor::shared_open ( const ACE_Addr & local_sap,
int protocol_family,
int backlog,
int ipv6_only )
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_ALLOC_HOOK_DECLARE

ACE_SOCK_Acceptor::ACE_ALLOC_HOOK_DECLARE

Declare the dynamic allocation hooks.


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