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]

List of all members.

Public Member Functions

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 Member Functions

 ACE_Asynch_Operation (void)
 Constructor.
virtual ACE_Asynch_Operation_Implimplementation (void) const =0
 Return the underlying implementation class.
ACE_Proactorget_proactor (ACE_Proactor *user_proactor, ACE_Handler &handler) const
 Get a proactor for/from the user.

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.

Definition at line 201 of file Asynch_IO.h.


Constructor & Destructor Documentation

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

virtual ACE_Asynch_Operation_Impl* ACE_Asynch_Operation::implementation ( void   )  const [protected, pure virtual]
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.


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on Sat Nov 21 23:15:53 2009 for ACE by  doxygen 1.6.1