# ACE_AIOCB_Notify_Pipe_Manager Class Reference

This class manages the notify pipe of the AIOCB Proactor. More...

Inheritance diagram for ACE_AIOCB_Notify_Pipe_Manager:

[legend]
Collaboration diagram for ACE_AIOCB_Notify_Pipe_Manager:

[legend]
List of all members.

## Public Member Functions

| ACE_AIOCB_Notify_Pipe_Manager (ACE_POSIX_AIOCB_Proactor *posix_aiocb_proactor)
virtual | ~ACE_AIOCB_Notify_Pipe_Manager (void)
| Destructor.
int | notify ()
| Send the result pointer through the notification pipe.
virtual void | handle_read_stream (const ACE_Asynch_Read_Stream::Result &result)

## Private Member Functions

| ACE_AIOCB_Notify_Pipe_Manager (void)
| Default constructor. Shouldnt be called.

## Private Attributes

ACE_POSIX_AIOCB_Proactor * | posix_aiocb_proactor_
| The implementation proactor class.
ACE_Message_Block | message_block_
| Message block to get ACE_POSIX_Asynch_Result pointer from the pipe.
ACE_Pipe | pipe_
ACE_POSIX_Asynch_Read_Stream | read_stream_
| To do asynch_read on the pipe.

## Detailed Description

This class manages the notify pipe of the AIOCB Proactor.

This class acts as the Handler for the <asynch_read> operations issued on the notify pipe. This class is very useful in implementing <asynch_accept> operation class for the <aiocb_proactor>. This is also useful for implementing <post_completion> for <aiocb_proactor>.

<aiocb_proactor> class issues a <asynch_read> on the pipe, using this class as the Handler. <POSIX_Asynch_Result *>'s are sent through the notify pipe. When <POSIX_Asynch_Result *>'s show up on the notify pipe, the <posix_aiocb_proactor> dispatches the completion of the <asynch_read_stream> and calls the <handle_read_stream> of this class. This class calls <complete> on the <POSIX_Asynch_Result *> and thus calls the application handler. Handling the MessageBlock: We give this message block to read the result pointer through the notify pipe. We expect that to read 4 bytes from the notify pipe, for each <accept> call. Before giving this message block to another <accept>, we update <wr_ptr> and put it in its initial position.

## Constructor & Destructor Documentation

ACE_AIOCB_Notify_Pipe_Manager::ACE_AIOCB_Notify_Pipe_Manager | ( | ACE_POSIX_AIOCB_Proactor * | posix_aiocb_proactor | ) |

| Constructor. You need the posix proactor because you need to call <application_specific_code>

ACE_AIOCB_Notify_Pipe_Manager::~ACE_AIOCB_Notify_Pipe_Manager | ( | void |  | ) | `[virtual]`

| Destructor.

ACE_AIOCB_Notify_Pipe_Manager::ACE_AIOCB_Notify_Pipe_Manager | ( | void |  | ) | `[private]`

| Default constructor. Shouldnt be called.

## Member Function Documentation

void ACE_AIOCB_Notify_Pipe_Manager::handle_read_stream | ( | const ACE_Asynch_Read_Stream::Result & | result | ) | `[virtual]`

| This is the call back method when <asynch_read> from the pipe is complete. Reimplemented from ACE_Handler.

int ACE_AIOCB_Notify_Pipe_Manager::notify | ( |  | ) |

| Send the result pointer through the notification pipe.

## Member Data Documentation

ACE_Message_Block ACE_AIOCB_Notify_Pipe_Manager::message_block_`[private]`

| Message block to get ACE_POSIX_Asynch_Result pointer from the pipe.

ACE_Pipe ACE_AIOCB_Notify_Pipe_Manager::pipe_`[private]`

| Pipe for the communication between Proactor and the Asynch_Accept/Asynch_Connect and other post_completions

ACE_POSIX_AIOCB_Proactor* ACE_AIOCB_Notify_Pipe_Manager::posix_aiocb_proactor_`[private]`

| The implementation proactor class.

ACE_POSIX_Asynch_Read_Stream ACE_AIOCB_Notify_Pipe_Manager::read_stream_`[private]`

| To do asynch_read on the pipe.

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

- POSIX_Proactor.cpp