ACE
6.1.0
|
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>
Public Member Functions | |
int | open (ACE_Handler &handler, ACE_HANDLE handle, const void *completion_key, ACE_Proactor *proactor) |
int | cancel (void) |
ACE_Proactor * | proactor (void) const |
Return the underlying proactor. | |
virtual | ~ACE_Asynch_Operation (void) |
Destructor. | |
Protected Member Functions | |
ACE_Asynch_Operation (void) | |
Constructor. | |
virtual ACE_Asynch_Operation_Impl * | implementation (void) const =0 |
Return the underlying implementation class. | |
ACE_Proactor * | get_proactor (ACE_Proactor *user_proactor, ACE_Handler &handler) const |
Get a proactor for/from the user. |
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.
ACE_Asynch_Operation::~ACE_Asynch_Operation | ( | void | ) | [virtual] |
Destructor.
ACE_Asynch_Operation::ACE_Asynch_Operation | ( | void | ) | [protected] |
Constructor.
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] |
Return the underlying implementation class.
Implemented in ACE_Asynch_Write_Dgram, ACE_Asynch_Read_Dgram, ACE_Asynch_Transmit_File, ACE_Asynch_Connect, ACE_Asynch_Accept, ACE_Asynch_Write_File, ACE_Asynch_Read_File, ACE_Asynch_Write_Stream, and ACE_Asynch_Read_Stream.
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_Write_Dgram, ACE_Asynch_Read_Dgram, ACE_Asynch_Transmit_File, ACE_Asynch_Connect, ACE_Asynch_Accept, ACE_Asynch_Write_File, ACE_Asynch_Read_File, ACE_Asynch_Write_Stream, and ACE_Asynch_Read_Stream.
ACE_Proactor * ACE_Asynch_Operation::proactor | ( | void | ) | const |
Return the underlying proactor.