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 ([email protected]), Tim Harrison ([email protected]) and Alexander Babu Arulanthu [email protected]
LIBRARY
ace