ACE  6.1.7
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | Private Member Functions | Private Attributes
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:
Inheritance graph
[legend]
Collaboration diagram for ACE_AIOCB_Notify_Pipe_Manager:
Collaboration graph
[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)
- Public Member Functions inherited from ACE_Handler
 ACE_Handler (void)
 A do nothing constructor.
 ACE_Handler (ACE_Proactor *p)
 A do nothing constructor which allows proactor to be set to <p>.
virtual ~ACE_Handler (void)
 Virtual destruction.
virtual void handle_write_dgram (const ACE_Asynch_Write_Dgram::Result &result)
virtual void handle_read_dgram (const ACE_Asynch_Read_Dgram::Result &result)
virtual void handle_write_stream (const ACE_Asynch_Write_Stream::Result &result)
virtual void handle_read_file (const ACE_Asynch_Read_File::Result &result)
virtual void handle_write_file (const ACE_Asynch_Write_File::Result &result)
virtual void handle_accept (const ACE_Asynch_Accept::Result &result)
 This method will be called when an asynchronous accept completes.
virtual void handle_connect (const ACE_Asynch_Connect::Result &result)
 This method will be called when an asynchronous connect completes.
virtual void handle_transmit_file (const ACE_Asynch_Transmit_File::Result &result)
virtual void handle_time_out (const ACE_Time_Value &tv, const void *act=0)
virtual void handle_wakeup (void)
ACE_Proactorproactor (void)
 Get the proactor associated with this handler.
void proactor (ACE_Proactor *p)
 Set the proactor.
virtual ACE_HANDLE handle (void) const
virtual void handle (ACE_HANDLE)
 Set the ACE_HANDLE value for this Handler.
Proxy_Ptrproxy (void)

Private Member Functions

 ACE_AIOCB_Notify_Pipe_Manager (void)
 Default constructor. Shouldnt be called.

Private Attributes

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

Additional Inherited Members

- Public Types inherited from ACE_Handler
typedef
ACE_Refcounted_Auto_Ptr< Proxy,
ACE_SYNCH_MUTEX
Proxy_Ptr
- Protected Member Functions inherited from ACE_Handler
 ACE_Handler (const ACE_Handler &)
ACE_Handler operator= (const ACE_Handler &)
- Protected Attributes inherited from ACE_Handler
ACE_Proactorproactor_
 The proactor associated with this handler.
ACE_HANDLE handle_
 The ACE_HANDLE in use with this handler.
ACE_Refcounted_Auto_Ptr< Proxy,
ACE_SYNCH_MUTEX
proxy_
 Refers to proxy for this handler.

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: