ACE_POSIX_AIOCB_Asynch_Operation3
This class implements ace_asynch_operation for aiocb (asynchronous i/o control blocks) based implementation of proactor.
Usage
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_;
};
Overview
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.
Library
ace