## NAME

ACE_POSIX_AIOCB_Asynch_Operation -

This class implements ACE_Asynch_Operation for AIOCB (Asynchronous I/O Control Blocks) based implementation of Proactor.

## SYNOPSIS

    class ACE_POSIX_AIOCB_Asynch_Operation :
      public virtual ACE_POSIX_Asynch_Operation
    {
      public:
        ACE_POSIX_AIOCB_Proactor *posix_proactor (void) const;
      protected:
        ACE_POSIX_AIOCB_Asynch_Operation (
            ACE_POSIX_AIOCB_Proactor *posix_aiocb_proactor
            );
        virtual ~ACE_POSIX_AIOCB_Asynch_Operation (void);
        int register_aio_with_proactor (ACE_POSIX_Asynch_Result *result);
        ACE_POSIX_AIOCB_Proactor *posix_aiocb_proactor_;
    };

## DESCRIPTION

The implementation classes for POSIX implementation of Asynch Operations are defined here in this file.

## PUBLIC MEMBERS

    ACE_POSIX_AIOCB_Proactor *posix_proactor (void) const;

Return the underlying Proactor implementation.

## PROTECTED MEMBERS

    ACE_POSIX_AIOCB_Asynch_Operation (
        ACE_POSIX_AIOCB_Proactor *posix_aiocb_proactor
        );

Contructor.

    virtual ~ACE_POSIX_AIOCB_Asynch_Operation (void);

Destructor.

    int register_aio_with_proactor (ACE_POSIX_Asynch_Result *result);

This call is for the POSIX implementation. This method is used by `ACE_Asynch_Operation` to store some information with the Proactor after an `aio_` call is issued, so that the Proactor can retreve this information to do `aio_return` and `aio_error`. Passing a '0' ptr returns the status, indicating whether there are slots available or no. Passing a valid ptr stores the ptr with the Proactor.

    ACE_POSIX_AIOCB_Proactor *posix_aiocb_proactor_;

It is easy to get this specific implementation proactor here, since it is the one that creates the correct POSIX_Asynch_* objects. We can use this to get to the implementation proactor directly.

## AUTHOR

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

## LIBRARY

ace