Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members   Related Pages  

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:

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 Methods

 ACE_SOCK_Acceptor (void)
 Default constructor. More...

 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). More...

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

int 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). More...

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)
 Initialize a passive-mode QoS-enabled acceptor socket. Returns 0 on success and -1 on failure. More...

int close (void)
 Close the socket. Returns 0 on success and -1 on failure. More...

 ~ACE_SOCK_Acceptor (void)
 Default dtor. More...

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
 Accept a new <ACE_SOCK_Stream> connection. More...

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
 Accept a new <ACE_SOCK_Stream> connection using the QoS information in <qos_params>. More...

void dump (void) const
 Dump the state of an object. More...


Public Attributes

 ACE_ALLOC_HOOK_DECLARE
 Declare the dynamic allocation hooks. More...


Protected Methods

int shared_accept_start (ACE_Time_Value *timeout, int restart, int &in_blocking_mode) const
 Perform operations that must occur before <ACE_OS::accept> is called. More...

int shared_accept_finish (ACE_SOCK_Stream new_stream, int in_blocking_mode, int reset_new_handle) const
 Perform operations that must occur after <ACE_OS::accept> is called. More...

int shared_open (const ACE_Addr &local_sap, int protocol_family, int backlog)
 This method factors out the common <open> code and is called by both the QoS-enabled <open> method and the BSD-style <open> method. More...


Private Methods

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


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

ASYS_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, 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   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:
Generated on Fri Nov 22 06:03:12 2002 for ACE by doxygen1.2.13.1 written by Dimitri van Heesch, © 1997-2001