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

ACE_Asynch_Operation Class Reference

This is an interface base class for all asynch operations. The resposiblility of this class is to forward all methods to its delegation/implementation class, e.g., ACE_WIN32_Asynch_Operation or ACE_POSIX_Asynch_Operation. More...

#include <Asynch_IO.h>

Inheritance diagram for ACE_Asynch_Operation:

Inheritance graph
[legend]
Collaboration diagram for ACE_Asynch_Operation:

Collaboration graph
[legend]
List of all members.

Public Methods

int open (ACE_Handler &handler, ACE_HANDLE handle, const void *completion_key, ACE_Proactor *proactor)
int cancel (void)
ACE_Proactorproactor (void) const
 Return the underlying proactor.

virtual ~ACE_Asynch_Operation (void)
 Destructor.


Protected Methods

 ACE_Asynch_Operation (void)
 Constructor.

ACE_Asynch_Operation_Implimplementation (void) const
 Return the underlying implementation class.

void implementation (ACE_Asynch_Operation_Impl *implementation)
 Set the implementation class.

ACE_Proactorget_proactor (ACE_Proactor *user_proactor, ACE_Handler &handler) const
 Get a proactor for/from the user.


Protected Attributes

ACE_Asynch_Operation_Implimplementation_
 Implementation class.


Detailed Description

This is an interface base class for all asynch operations. The resposiblility of this class is to forward all methods to its delegation/implementation class, e.g., ACE_WIN32_Asynch_Operation or ACE_POSIX_Asynch_Operation.

There are some attributes and functionality which is common to all asychronous operations. The delegation classes of this class will factor out this code.


Constructor & Destructor Documentation

ACE_Asynch_Operation::~ACE_Asynch_Operation void    [virtual]
 

Destructor.

ACE_Asynch_Operation::ACE_Asynch_Operation void    [protected]
 

Constructor.


Member Function Documentation

int ACE_Asynch_Operation::cancel void   
 

(Attempts to) cancel the asynchronous operation pending against the <handle> registered with this Operation.

All completion notifications for the I/O operations will occur normally.

= Return Values:

-1 : Operation failed. (can get only in POSIX). 0 : All the operations were cancelled. 1 : All the operations were already finished in this handle. Unable to cancel them. 2 : Atleast one of the requested operations cannot be cancelled.

There is slight difference in the semantics between NT and POSIX platforms which is given below.

= Win32 :

cancels all pending accepts operations that were issued by the calling thread. The function does not cancel asynchronous operations issued by other threads. All I/O operations that are canceled will complete with the error ERROR_OPERATION_ABORTED.

= POSIX:

Attempts to cancel one or more asynchronous I/O requests currently outstanding against the <handle> registered in this operation. For requested operations that are successfully canceled, the associated error status is set to ECANCELED.

ACE_Proactor * ACE_Asynch_Operation::get_proactor ACE_Proactor   user_proactor,
ACE_Handler   handler
const [protected]
 

Get a proactor for/from the user.

void ACE_Asynch_Operation::implementation ACE_Asynch_Operation_Impl   implementation [protected]
 

Set the implementation class.

ACE_Asynch_Operation_Impl * ACE_Asynch_Operation::implementation void    const [protected]
 

Return the underlying implementation class.

Reimplemented in ACE_Asynch_Read_Stream, ACE_Asynch_Write_Stream, ACE_Asynch_Read_File, ACE_Asynch_Write_File, ACE_Asynch_Accept, ACE_Asynch_Connect, ACE_Asynch_Transmit_File, ACE_Asynch_Read_Dgram, and ACE_Asynch_Write_Dgram.

int ACE_Asynch_Operation::open ACE_Handler   handler,
ACE_HANDLE    handle,
const void *    completion_key,
ACE_Proactor   proactor
 

Initializes the factory with information which will be used with each asynchronous call. If (<handle> == ACE_INVALID_HANDLE), <ACE_Handler::handle> will be called on the <handler> to get the correct handle.

Reimplemented in ACE_Asynch_Read_Stream, ACE_Asynch_Write_Stream, ACE_Asynch_Read_File, ACE_Asynch_Write_File, ACE_Asynch_Accept, ACE_Asynch_Connect, ACE_Asynch_Transmit_File, ACE_Asynch_Read_Dgram, and ACE_Asynch_Write_Dgram.

ACE_Proactor * ACE_Asynch_Operation::proactor void    const
 

Return the underlying proactor.


Member Data Documentation

ACE_Asynch_Operation_Impl* ACE_Asynch_Operation::implementation_ [protected]
 

Implementation class.

Reimplemented in ACE_Asynch_Read_Stream, ACE_Asynch_Write_Stream, ACE_Asynch_Read_File, ACE_Asynch_Write_File, ACE_Asynch_Accept, ACE_Asynch_Connect, ACE_Asynch_Transmit_File, ACE_Asynch_Read_Dgram, and ACE_Asynch_Write_Dgram.


The documentation for this class was generated from the following files:
Generated on Wed Jan 14 22:41:14 2004 for ACE by doxygen1.2.18