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