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

# ACE_SSL_SOCK_Acceptor Class Reference

Defines a factory that creates new ACE_SSL_SOCK_Stream>s passively. More...

`#include <SSL_SOCK_Acceptor.h>`

Inheritance diagram for ACE_SSL_SOCK_Acceptor

[legend]
Collaboration diagram for ACE_SSL_SOCK_Acceptor:

[legend]
List of all members.

## Public Types
typedef ACE_INET_Addr | PEER_ADDR
typedef ACE_SSL_SOCK_Stream | PEER_STREAM
## Public Methods
| ACE_SSL_SOCK_Acceptor (ACE_Reactor *reactor = ACE_Reactor::instance ())
| Default constructor.
| ~ACE_SSL_SOCK_Acceptor (void)
| Default dtor.
| ACE_SSL_SOCK_Acceptor (const ACE_Addr &local_sap, int reuse_addr = 0, int protocol_family = PF_INET, int backlog = ACE_DEFAULT_BACKLOG, int protocol = 0, ACE_Reactor *reactor = ACE_Reactor::instance () )
| ACE_SSL_SOCK_Acceptor (const ACE_Addr &local_sap, ACE_Protocol_Info *protocolinfo, ACE_SOCK_GROUP g, u_long flags, int reuse_addr, int protocol_family, int backlog = ACE_DEFAULT_BACKLOG, int protocol = 0, ACE_Reactor *reactor = ACE_Reactor::instance ())
| Initiate a passive-mode QoS-enabled acceptor socket.
int | open (const ACE_Addr &local_sap, int reuse_addr = 0, int protocol_family = PF_INET, int backlog = ACE_DEFAULT_BACKLOG, int protocol = 0)
int | close (void)
| Close the listening socket.
void | reactor (ACE_Reactor *r)
| Set the Reactor used when completing the SSL passive connection.
ACE_Reactor* | reactor (void) const
| Return the Reactor used when completing the SSL passive connection.
Passive Connection "accept" Methods
These are the canonical methods exposed by the Acceptor pattern.
int | accept (ACE_SSL_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_SSL_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
## Public Attributes
| ACE_ALLOC_HOOK_DECLARE
| Declare the dynamic allocation hooks.
## 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.
int | shared_accept_finish (ACE_SSL_SOCK_Stream &new_stream, int in_blocking_mode, int reset_new_handle) const
| Perform operations that must occur after ACE_OS::accept() is called.
int | ssl_accept (ACE_SSL_SOCK_Stream &new_stream) const
| Complete blocking SSL passive connection establishment.
int | ssl_accept (ACE_SSL_SOCK_Stream &new_stream, ACE_Time_Value *timeout) const
| Complete non-blocking SSL passive connection establishment.
## Private Attributes
ACE_SOCK_Acceptor | acceptor_
| The BSD-socket workhorse.
ACE_Reactor* | reactor_
| Pointer to the Reactor responsible for dispatching the event handler responsible for completing the SSL passive connection.

## Detailed Description

Defines a factory that creates new ACE_SSL_SOCK_Stream>s passively.

The ACE_SSL_SOCK_Acceptor has its own ACE_SOCK_Acceptor which handles virtually all of the socket acceptance. This class is a wrapper which only adds the SSL acceptance.

Since SSL is record-oriented, some additional steps must be taken to make the ACE_SSL_SOCK_Acceptor interact properly with the Reactor (if one is used) when performing non-blocking accept() calls. In particular, the ACE_SSL_SOCK_Acceptor registers an event handler with the Reactor set in the constructor or in the ACE_SSL_SOCK_Acceptor::reactor() method. If no Reactor is explicitly set, the singleton Reactor instance will be used.

Note:
  The user must currently ensure that only one thread services a given SSL session at any given time since some underlying SSL implementations, such as OpenSSL, are not entirely thread-safe or reentrant.

## Member Typedef Documentation

typedef ACE_INET_Addr ACE_SSL_SOCK_Acceptor::PEER_ADDR

typedef ACE_SSL_SOCK_Stream ACE_SSL_SOCK_Acceptor::PEER_STREAM

## Constructor & Destructor Documentation

ASYS_INLINE ACE_SSL_SOCK_Acceptor::ACE_SSL_SOCK_Acceptor ( | ACE_Reactor * reactor = ACE_Reactor::instance () )

| Default constructor.

ACE_SSL_SOCK_Acceptor::~ACE_SSL_SOCK_Acceptor ( | void )

| Default dtor.

ASYS_INLINE ACE_SSL_SOCK_Acceptor::ACE_SSL_SOCK_Acceptor ( | const ACE_Addr & local_sap,
| int reuse_addr = 0,
| int protocol_family = PF_INET,
| int backlog = ACE_DEFAULT_BACKLOG,
| int protocol = 0,
| ACE_Reactor * reactor = ACE_Reactor::instance () )

  | Initiate a passive mode SSL/BSD-style acceptor socket. Parameters:
  local_sap | The address that we're going to listen for connections on.

ASYS_INLINE ACE_SSL_SOCK_Acceptor::ACE_SSL_SOCK_Acceptor ( | const ACE_Addr & local_sap,
| ACE_Protocol_Info * protocolinfo,
| ACE_SOCK_GROUP g,
| u_long flags,
| int reuse_addr,
| int protocol_family,
| int backlog = ACE_DEFAULT_BACKLOG,
| int protocol = 0,
| ACE_Reactor * reactor = ACE_Reactor::instance () )

| Initiate a passive-mode QoS-enabled acceptor socket.

## Member Function Documentation

int ACE_SSL_SOCK_Acceptor::accept ( | ACE_SSL_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_SSL_SOCK_Stream connection using the RVSP 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.

int ACE_SSL_SOCK_Acceptor::accept ( | ACE_SSL_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_SSL_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.

ASYS_INLINE int ACE_SSL_SOCK_Acceptor::close ( | void )

| Close the listening socket. Reimplemented from ACE_SOCK.

ASYS_INLINE int ACE_SSL_SOCK_Acceptor::open ( | const ACE_Addr & local_sap,
| int reuse_addr = 0,
| int protocol_family = PF_INET,
| int backlog = ACE_DEFAULT_BACKLOG,
| int protocol = 0 )

  | Initiate a passive mode SSL/BSD-style acceptor socket. Parameters:
  local_sap | The address that we're going to listen for connections on.

ASYS_INLINE ACE_Reactor * ACE_SSL_SOCK_Acceptor::reactor ( | void ) const

| Return the Reactor used when completing the SSL passive connection.

ASYS_INLINE void ACE_SSL_SOCK_Acceptor::reactor ( | ACE_Reactor * r )

| Set the Reactor used when completing the SSL passive connection.

int ACE_SSL_SOCK_Acceptor::shared_accept_finish ( | ACE_SSL_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_SSL_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_SSL_SOCK_Acceptor::ssl_accept ( | ACE_SSL_SOCK_Stream & new_stream,
| ACE_Time_Value * timeout ) const`[protected]`

| Complete non-blocking SSL passive connection establishment.

int ACE_SSL_SOCK_Acceptor::ssl_accept ( | ACE_SSL_SOCK_Stream & new_stream ) const`[protected]`

| Complete blocking SSL passive connection establishment.

## Member Data Documentation

ACE_SSL_SOCK_Acceptor::ACE_ALLOC_HOOK_DECLARE

| Declare the dynamic allocation hooks.

ACE_SOCK_Acceptor ACE_SSL_SOCK_Acceptor::acceptor_`[private]`

| The BSD-socket workhorse.

ACE_Reactor * ACE_SSL_SOCK_Acceptor::reactor_`[private]`

| Pointer to the Reactor responsible for dispatching the event handler responsible for completing the SSL passive connection.

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

- SSL_SOCK_Acceptor.h
- SSL_SOCK_Acceptor.cpp
- SSL_SOCK_Acceptor.i