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]

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, 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 (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, 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)

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

Reimplemented in ACE_LSOCK_Acceptor, and ACE_MEM_Acceptor.

Reimplemented in ACE_LSOCK_Acceptor, and ACE_MEM_Acceptor.


Constructor & Destructor Documentation

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_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,
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.

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,
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.

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,
bool  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,
bool  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

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:

Generated on Mon Jul 13 16:13:05 2009 for ACE by  doxygen 1.5.8