# ACE_SPIPE_Acceptor Class Reference

A factory class that produces ACE_SPIPE_Stream objects. More...

`#include <SPIPE_Acceptor.h>`

Inheritance diagram for ACE_SPIPE_Acceptor:

[legend]
Collaboration diagram for ACE_SPIPE_Acceptor:

[legend]
List of all members.

## Public Types

typedef ACE_SPIPE_Addr | PEER_ADDR
typedef ACE_SPIPE_Stream | PEER_STREAM

## Public Member Functions

| ACE_SPIPE_Acceptor (void)
| Default constructor.
| ACE_SPIPE_Acceptor (const ACE_SPIPE_Addr &local_sap, int reuse_addr=1, int perms=ACE_DEFAULT_FILE_PERMS, LPSECURITY_ATTRIBUTES sa=0, int pipe_mode=PIPE_TYPE_MESSAGE|PIPE_READMODE_MESSAGE)
| Initiate a passive-mode STREAM pipe listener.
int | open (const ACE_SPIPE_Addr &local_sap, int reuse_addr=1, int perms=ACE_DEFAULT_FILE_PERMS, LPSECURITY_ATTRIBUTES sa=0, int pipe_mode=PIPE_TYPE_MESSAGE|PIPE_READMODE_MESSAGE)
| Initiate a passive-mode STREAM pipe listener.
int | close (void)
| Close down the passive-mode STREAM pipe listener.
int | remove (void)
| Remove the underlying mounted pipe from the file system.
int | accept (ACE_SPIPE_Stream &ipc_sap_spipe, ACE_SPIPE_Addr *remote_addr=0, ACE_Time_Value *timeout=0, int restart=1, int reset_new_handle=0)
void | dump (void) const
| Dump the state of an object.

## Public Attributes

| ACE_ALLOC_HOOK_DECLARE
| Declare the dynamic allocation hooks.

## Private Member Functions

int | create_new_instance (int perms=0)
| Create a new instance of an SPIPE.

## Detailed Description

A factory class that produces ACE_SPIPE_Stream objects.

ACE_SPIPE_Acceptor is a factory class that accepts SPIPE connections. Each accepted connection produces an ACE_SPIPE_Stream object.

Warning:
  Windows: Works only on Windows NT 4 and higher. To use this class with the ACE_Reactor framework, note that the handle to demultiplex on is an event handle and should be registered with the ACE_Reactor::register_handler (ACE_Event_Handler *, ACE_HANDLE) method.

  Works on non-Windows platforms only when `ACE_HAS_STREAM_PIPES` is defined.

## Member Typedef Documentation

typedef ACE_SPIPE_Addr ACE_SPIPE_Acceptor::PEER_ADDR

typedef ACE_SPIPE_Stream ACE_SPIPE_Acceptor::PEER_STREAM

## Constructor & Destructor Documentation

ACE_BEGIN_VERSIONED_NAMESPACE_DECL ACE_SPIPE_Acceptor::ACE_SPIPE_Acceptor | ( | void |  | ) |

| Default constructor.

ACE_SPIPE_Acceptor::ACE_SPIPE_Acceptor | ( | const ACE_SPIPE_Addr & | local_sap,
|  | int | reuse_addr = `1`,
|  | int | perms = `ACE_DEFAULT_FILE_PERMS`,
|  | LPSECURITY_ATTRIBUTES | sa = `0`,
|  | int | pipe_mode = `PIPE_TYPE_MESSAGE|PIPE_READMODE_MESSAGE`
| ) |

Initiate a passive-mode STREAM pipe listener.

Parameters:

  | local_sap | The name of the pipe instance to open and listen on.
  | reuse_addr | Optional, and ignored. Needed for API compatibility with other acceptor classes.
  | perms | Optional, the protection mask to create the pipe with. Ignored on Windows.
  | sa | Optional, ignored on non-Windows. The SECURITY_ATTRIBUTES to create the named pipe instances with. This pointer is remembered and reused on each new named pipe instance, so only pass a value that remains valid as long as this object does.
  | pipe_mode | Optional, ignored on non-Windows. The NT pipe mode used when creating the pipe.

## Member Function Documentation

int ACE_SPIPE_Acceptor::accept | ( | ACE_SPIPE_Stream & | ipc_sap_spipe,
|  | ACE_SPIPE_Addr * | remote_addr = `0`,
|  | ACE_Time_Value * | timeout = `0`,
|  | int | restart = `1`,
|  | int | reset_new_handle = `0`
| ) |

Accept a new data transfer connection.

Parameters:

  | ipc_sap_spipe | The ACE_SPIPE_Stream to initialize with the newly-accepted pipe.
  | remote_addr | Optional, accepts the address of the peer.
  | timeout | 0 means block forever, {0, 0} means poll.
  | restart | 1 means "restart if interrupted."

Return values:

  | 0 | for success.
  | -1 | for failure.

int ACE_SPIPE_Acceptor::close | ( | void |  | ) |

| Close down the passive-mode STREAM pipe listener. Reimplemented from ACE_SPIPE. Reimplemented in ACE_UPIPE_Acceptor.

int ACE_SPIPE_Acceptor::create_new_instance | ( | int | perms = `0` | ) | `[private]`

| Create a new instance of an SPIPE.

void ACE_SPIPE_Acceptor::dump | ( | void |  | ) | const

| Dump the state of an object. Reimplemented from ACE_SPIPE. Reimplemented in ACE_UPIPE_Acceptor.

int ACE_SPIPE_Acceptor::open | ( | const ACE_SPIPE_Addr & | local_sap,
|  | int | reuse_addr = `1`,
|  | int | perms = `ACE_DEFAULT_FILE_PERMS`,
|  | LPSECURITY_ATTRIBUTES | sa = `0`,
|  | int | pipe_mode = `PIPE_TYPE_MESSAGE|PIPE_READMODE_MESSAGE`
| ) |

Initiate a passive-mode STREAM pipe listener.

Parameters:

  | local_sap | The name of the pipe instance to open and listen on.
  | reuse_addr | Optional, and ignored. Needed for API compatibility with other acceptor classes.
  | perms | Optional, the protection mask to create the pipe with. Ignored on Windows.
  | sa | Optional, ignored on non-Windows. The SECURITY_ATTRIBUTES to create the named pipe instances with. This pointer is remembered and reused on each new named pipe instance, so only pass a value that remains valid as long as this object does.
  | pipe_mode | Optional, ignored on non-Windows. The NT pipe mode used when creating the pipe.

Return values:

  | 0 | for success.
  | -1 | for failure.

int ACE_SPIPE_Acceptor::remove | ( | void |  | ) |

| Remove the underlying mounted pipe from the file system. Reimplemented from ACE_SPIPE. Reimplemented in ACE_UPIPE_Acceptor.

## Member Data Documentation

ACE_SPIPE_Acceptor::ACE_ALLOC_HOOK_DECLARE

| Declare the dynamic allocation hooks. Reimplemented from ACE_SPIPE. Reimplemented in ACE_UPIPE_Acceptor.

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

- SPIPE_Acceptor.h
- SPIPE_Acceptor.cpp