## NAME

ACE_Asynch_Operation -

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

## SYNOPSIS

    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_;
    };

## DESCRIPTION

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.

## Access methods.

    ACE_Proactor* proactor (void) const;

Return the underlying proactor.

    virtual ~ACE_Asynch_Operation (void);

Destructor.

## AUTHOR

Irfan Pyarali `irfan@cs.wustl.edu`, Tim Harrison `harrison@cs.wustl.edu` and Alexander Babu Arulanthu `alex@cs.wustl.edu`

## LIBRARY

ace