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.
Definition at line 201 of file Asynch_IO.h.
| virtual 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_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.
1.6.1