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
.
class ACE_Asynch_Operation {
public:
int open ( ACE_Handler &handler, ACE_HANDLE handle, const void *completion_key, ACE_Proactor *proactor );
int cancel (void);
ACE_Proactor* proactor (void) const;
virtual ~ACE_Asynch_Operation (void);
protected:
ACE_Asynch_Operation (void);
ACE_Asynch_Operation_Impl *implementation (void) const;
void implementation (ACE_Asynch_Operation_Impl *implementation);
ACE_Proactor *get_proactor ( ACE_Proactor *user_proactor, ACE_Handler &handler ) const;
ACE_Asynch_Operation_Impl *implementation_;
};
This works on Win32 (#if defined (ACE_WIN32) && !defined
(ACE_HAS_WINCE)) platforms and on POSIX4 platforms with aio_*
routines (#if defined (ACE_HAS_AIO_CALLS))
On Win32 platforms, the implementation of
ACE_Asynch_Transmit_File
and ACE_Asynch_Accept
are only
supported if ACE_HAS_WINSOCK2 is defined or you are on WinNT 4.0
or higher.
ACE_Proactor* proactor (void) const;
virtual ~ACE_Asynch_Operation (void);
Irfan Pyarali irfan@cs.wustl.edu
,
Tim Harrison harrison@cs.wustl.edu
and
Alexander Babu Arulanthu alex@cs.wustl.edu
ace