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

# ACE_Acceptor Class Template Reference

Abstract factory for creating a service handler (SVC_HANDLER), accepting into the SVC_HANDLER, and activating the SVC_HANDLER. More...

`#include <Acceptor.h>`

Inheritance diagram for ACE_Acceptor

[legend]
Collaboration diagram for ACE_Acceptor:

[legend]
List of all members.

## Public Methods
| ACE_Acceptor (ACE_Reactor * = 0, int use_select = 1)
| "Do-nothing" constructor.
| ACE_Acceptor (const ACE_PEER_ACCEPTOR_ADDR &local_addr, ACE_Reactor * = ACE_Reactor::instance (), int flags = 0, int use_select = 1, int reuse_addr = 1)
int | open (const ACE_PEER_ACCEPTOR_ADDR &, ACE_Reactor * = ACE_Reactor::instance (), int flags = 0, int use_select = 1, int reuse_addr = 1)
virtual | ~ACE_Acceptor (void)
| Close down the Acceptor's resources.
virtual | operator ACE_PEER_ACCEPTOR & () const
| Return the underlying PEER_ACCEPTOR object.
virtual ACE_PEER_ACCEPTOR& | acceptor (void) const
| Return the underlying PEER_ACCEPTOR object.
virtual ACE_HANDLE | get_handle (void) const
| Returns the listening acceptor's .
virtual int | close (void)
| Close down the Acceptor.
void | dump (void) const
| Dump the state of an object.
virtual int | suspend (void)
| This method calls <Reactor::suspend>.
virtual int | resume (void)
| This method calls <Reactor::resume>.
## Public Attributes
| ACE_ALLOC_HOOK_DECLARE
| Declare the dynamic allocation hooks.
## Protected Methods
virtual int | make_svc_handler (SVC_HANDLER *&sh)
virtual int | accept_svc_handler (SVC_HANDLER *svc_handler)
virtual int | activate_svc_handler (SVC_HANDLER *svc_handler)
virtual int | handle_close (ACE_HANDLE = ACE_INVALID_HANDLE, ACE_Reactor_Mask = ACE_Event_Handler::ALL_EVENTS_MASK)
| Perform termination activities when <this> is removed from the <reactor>.
virtual int | handle_input (ACE_HANDLE)
| Accepts all pending connections from clients, and creates and activates SVC_HANDLERs.
virtual int | init (int argc, ACE_TCHAR *argv[])
| Default version does no work and returns -1. Must be overloaded by application developer to do anything meaningful.
virtual int | fini (void)
| Calls <handle_close>.
virtual int | info (ACE_TCHAR **buf, size_t) const
| Default version returns address info in <buf>.
## Protected Attributes
ACE_PEER_ACCEPTOR | peer_acceptor_
| Concrete factory for accepting connections from clients...
ACE_PEER_ACCEPTOR_ADDR | peer_acceptor_addr_
| Needed to reopen the socket if fails.
int | flags_
int | use_select_
| Flag that indicates whether it shall use <select> in the -loop.
int | reuse_addr_
| Needed to reopen the socket if fails.

## Detailed Description

### template<class SVC_HANDLER, ACE_PEER_ACCEPTOR_1> template class ACE_Acceptor

Abstract factory for creating a service handler (SVC_HANDLER), accepting into the SVC_HANDLER, and activating the SVC_HANDLER.

Implements the basic strategy for passively establishing connections with clients. An ACE_Acceptor is parameterized by concrete types that conform to the interfaces of PEER_ACCEPTOR and SVC_HANDLER. The PEER_ACCEPTOR is instantiated with a transport mechanism that passively establishes connections. The SVC_HANDLER is instantiated with a concrete type that performs the application-specific service. An ACE_Acceptor inherits from ACE_Service_Object, which in turn inherits from ACE_Event_Handler. This enables the ACE_Reactor to dispatch the ACE_Acceptor's handle_input method when connection events occur. The handle_input method performs the ACE_Acceptor's default creation, connection establishment, and service activation strategies. These strategies can be overridden by subclasses individually or as a group.

## Constructor & Destructor Documentation

template<classSVC_HANDLER, ACE_PEER_ACCEPTOR_1>
ACE_Acceptor<SVC_HANDLER, >::ACE_Acceptor<SVC_HANDLER, > ( | ACE_Reactor * reactor = 0,
| int use_select = 1 )

| "Do-nothing" constructor.

template<classSVC_HANDLER, ACE_PEER_ACCEPTOR_1>
ACE_Acceptor<SVC_HANDLER, >::ACE_Acceptor<SVC_HANDLER, > ( | const ACE_PEER_ACCEPTOR_ADDR & local_addr,
| ACE_Reactor * reactor = ACE_Reactor::instance (),
| int flags = 0,
| int use_select = 1,
| int reuse_addr = 1 )

| Initialize and register <this> with the Reactor and listen for connection requests at the designated <local_addr>. <flags> indicates how <SVC_HANDLER>'s should be initialized prior to being activated. Right now, the only flag that is processed is , which enabled non-blocking I/O on the <SVC_HANDLER> when it is opened. If <use_select> is non-zero then <select> is used to determine when to break out of the loop. <reuse_addr> is passed down to the <PEER_ACCEPTOR>. If it is non-zero this will allow the OS to reuse this listen port.

template<classSVC_HANDLER, ACE_PEER_ACCEPTOR_1>
ACE_Acceptor<SVC_HANDLER, >::~ACE_Acceptor<SVC_HANDLER, > ( | void )`[virtual]`

| Close down the Acceptor's resources.

## Member Function Documentation

template<classSVC_HANDLER, ACE_PEER_ACCEPTOR_1>
int ACE_Acceptor<SVC_HANDLER, >::accept_svc_handler ( | SVC_HANDLER * svc_handler )`[protected, virtual]`

| Bridge method for accepting the new connection into the <svc_handler>. The default behavior delegates to the PEER_ACCEPTOR::accept. Reimplemented in ACE_Strategy_Acceptor.

template<classSVC_HANDLER, ACE_PEER_ACCEPTOR_1>
ACE_PEER_ACCEPTOR & ACE_Acceptor<SVC_HANDLER, >::acceptor ( | void ) const`[virtual]`

| Return the underlying PEER_ACCEPTOR object. Reimplemented in ACE_Strategy_Acceptor.

template<classSVC_HANDLER, ACE_PEER_ACCEPTOR_1>
int ACE_Acceptor<SVC_HANDLER, >::activate_svc_handler ( | SVC_HANDLER * svc_handler )`[protected, virtual]`

| Bridge method for activating a <svc_handler> with the appropriate concurrency strategy. The default behavior of this method is to activate the SVC_HANDLER by calling its <open> method (which allows the SVC_HANDLER to define its own concurrency strategy). However, subclasses can override this strategy to do more sophisticated concurrency activations (such as making the SVC_HANDLER as an "active object" via multi-threading or multi-processing). Reimplemented in ACE_Strategy_Acceptor.

template<classSVC_HANDLER, ACE_PEER_ACCEPTOR_1>
int ACE_Acceptor<SVC_HANDLER, >::close ( | void )`[virtual]`

| Close down the Acceptor.

template<classSVC_HANDLER, ACE_PEER_ACCEPTOR_1>
void ACE_Acceptor<SVC_HANDLER, >::dump ( | void ) const

| Dump the state of an object. Reimplemented in ACE_Strategy_Acceptor.

template<classSVC_HANDLER, ACE_PEER_ACCEPTOR_1>
int ACE_Acceptor<SVC_HANDLER, >::fini ( | void )`[protected, virtual]`

| Calls <handle_close>. Reimplemented from ACE_Shared_Object. Reimplemented in ACE_Strategy_Acceptor.

template<classSVC_HANDLER, ACE_PEER_ACCEPTOR_1>
ACE_HANDLE ACE_Acceptor<SVC_HANDLER, >::get_handle ( | void ) const`[virtual]`

| Returns the listening acceptor's . Reimplemented from ACE_Event_Handler. Reimplemented in ACE_Strategy_Acceptor.

template<classSVC_HANDLER, ACE_PEER_ACCEPTOR_1>
int ACE_Acceptor<SVC_HANDLER, >::handle_close ( | ACE_HANDLE handle = ACE_INVALID_HANDLE,
| ACE_Reactor_Mask close_mask = ACE_Event_Handler::ALL_EVENTS_MASK )`[protected, virtual]`

| Perform termination activities when <this> is removed from the <reactor>. Reimplemented from ACE_Event_Handler. Reimplemented in ACE_Strategy_Acceptor.

template<classSVC_HANDLER, ACE_PEER_ACCEPTOR_1>
int ACE_Acceptor<SVC_HANDLER, >::handle_input ( | ACE_HANDLE listener )`[protected, virtual]`

| Accepts all pending connections from clients, and creates and activates SVC_HANDLERs. Reimplemented from ACE_Event_Handler.

template<classSVC_HANDLER, ACE_PEER_ACCEPTOR_1>
int ACE_Acceptor<SVC_HANDLER, >::info ( | ACE_TCHAR ** buf,
| size_t length ) const`[protected, virtual]`

| Default version returns address info in <buf>. Reimplemented from ACE_Shared_Object. Reimplemented in ACE_Strategy_Acceptor.

template<classSVC_HANDLER, ACE_PEER_ACCEPTOR_1>
int ACE_Acceptor<SVC_HANDLER, >::init ( | int argc,
| ACE_TCHAR * argv[] )`[protected, virtual]`

| Default version does no work and returns -1. Must be overloaded by application developer to do anything meaningful. Reimplemented from ACE_Shared_Object.

template<classSVC_HANDLER, ACE_PEER_ACCEPTOR_1>
int ACE_Acceptor<SVC_HANDLER, >::make_svc_handler ( | SVC_HANDLER *& sh )`[protected, virtual]`

| Bridge method for creating a SVC_HANDLER. The default is to create a new <SVC_HANDLER> if <sh> == 0, else <sh> is unchanged. However, subclasses can override this policy to perform SVC_HANDLER creation in any way that they like (such as creating subclass instances of SVC_HANDLER, using a singleton, dynamically linking the handler, etc.). Returns -1 on failure, else 0. Reimplemented in ACE_Strategy_Acceptor.

template<classSVC_HANDLER, ACE_PEER_ACCEPTOR_1>
int ACE_Acceptor<SVC_HANDLER, >::open ( | const ACE_PEER_ACCEPTOR_ADDR & local_addr,
| ACE_Reactor * reactor = ACE_Reactor::instance (),
| int flags = 0,
| int use_select = 1,
| int reuse_addr = 1 )

| Initialize and register <this> with the Reactor and listen for connection requests at the designated <local_addr>. <flags> indicates how <SVC_HANDLER>'s should be initialized prior to being activated. Right now, the only flag that is processed is , which enabled non-blocking I/O on the <SVC_HANDLER> when it is opened. If <use_select> is non-zero then <select> is used to determine when to break out of the loop. <reuse_addr> is passed down to the <PEER_ACCEPTOR>. If it is non-zero this will allow the OS to reuse this listen port.

template<classSVC_HANDLER, ACE_PEER_ACCEPTOR_1>
ACE_Acceptor<SVC_HANDLER, >::operator ACE_PEER_ACCEPTOR & ( | ) const`[virtual]`

| Return the underlying PEER_ACCEPTOR object. Reimplemented in ACE_Strategy_Acceptor.

template<classSVC_HANDLER, ACE_PEER_ACCEPTOR_1>
int ACE_Acceptor<SVC_HANDLER, >::resume ( | void )`[virtual]`

| This method calls <Reactor::resume>. Reimplemented from ACE_Service_Object. Reimplemented in ACE_Strategy_Acceptor.

template<classSVC_HANDLER, ACE_PEER_ACCEPTOR_1>
int ACE_Acceptor<SVC_HANDLER, >::suspend ( | void )`[virtual]`

| This method calls <Reactor::suspend>. Reimplemented from ACE_Service_Object. Reimplemented in ACE_Strategy_Acceptor.

## Member Data Documentation

template<classSVC_HANDLER, ACE_PEER_ACCEPTOR_1>
ACE_Acceptor<SVC_HANDLER, >::ACE_ALLOC_HOOK_DECLARE

| Declare the dynamic allocation hooks. Reimplemented in ACE_Strategy_Acceptor.

template<classSVC_HANDLER, ACE_PEER_ACCEPTOR_1>
int ACE_Acceptor<SVC_HANDLER, >::flags_`[protected]`

| Flags that indicate how <SVC_HANDLER>'s should be initialized prior to being activated. Right now, the only flag that is processed is , which enabled non-blocking I/O on the <SVC_HANDLER> when it is opened.

template<classSVC_HANDLER, ACE_PEER_ACCEPTOR_1>
ACE_PEER_ACCEPTOR ACE_Acceptor<SVC_HANDLER, >::peer_acceptor_`[protected]`

| Concrete factory for accepting connections from clients...

template<classSVC_HANDLER, ACE_PEER_ACCEPTOR_1>
ACE_PEER_ACCEPTOR_ADDR ACE_Acceptor<SVC_HANDLER, >::peer_acceptor_addr_`[protected]`

| Needed to reopen the socket if fails.

template<classSVC_HANDLER, ACE_PEER_ACCEPTOR_1>
int ACE_Acceptor<SVC_HANDLER, >::reuse_addr_`[protected]`

| Needed to reopen the socket if fails.

template<classSVC_HANDLER, ACE_PEER_ACCEPTOR_1>
int ACE_Acceptor<SVC_HANDLER, >::use_select_`[protected]`

| Flag that indicates whether it shall use <select> in the -loop.

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

- Acceptor.h
- Acceptor.cpp