#include <POSIX_CB_Proactor.h>
Inheritance diagram for ACE_POSIX_CB_Proactor:
Public Methods | |
virtual Proactor_Type | get_impl_type (void) |
virtual | ~ACE_POSIX_CB_Proactor (void) |
Destructor. More... | |
ACE_POSIX_CB_Proactor (size_t max_aio_operations=ACE_AIO_DEFAULT_SIZE) | |
Constructor defines max number asynchronous operations that can be started at the same time. More... | |
Protected Methods | |
virtual int | handle_events (ACE_Time_Value &wait_time) |
Dispatch a single set of events. More... | |
virtual int | handle_events (u_long milli_seconds) |
Dispatch a single set of events. More... | |
virtual int | handle_events (void) |
Block indefinitely until at least one event is dispatched. More... | |
virtual int | get_result_status (ACE_POSIX_Asynch_Result *asynch_result, int &error_status, int &return_status) |
Check AIO for completion, error and result status Return: 1 - AIO completed , 0 - not completed yet. More... | |
virtual int | cancel_aiocb (ACE_POSIX_Asynch_Result *result) |
From ACE_POSIX_AIOCB_Proactor. Attempt to cancel running request. More... | |
virtual int | cancel_aio (ACE_HANDLE handle) |
This method should be called from ACE_POSIX_Asynch_Operation::cancel() instead of usual aio_cancel. More... | |
virtual int | allocate_aio_slot (ACE_POSIX_Asynch_Result *result) |
Find free slot to store result and aiocb pointer. More... | |
virtual int | notify_completion (int sig_num) |
Notify queue of "post_completed" ACE_POSIX_Asynch_Results called from post_completion method. More... | |
Static Protected Methods | |
void | aio_completion_func (sigval_t cb_data) |
Protected Attributes | |
ACE_SYNCH_SEMAPHORE | sema_ |
semaphore variable to notify used to wait the first AIO start. More... |
|
Destructor.
|
|
Constructor defines max number asynchronous operations that can be started at the same time.
|
|
|
|
Find free slot to store result and aiocb pointer.
Reimplemented from ACE_POSIX_AIOCB_Proactor. |
|
This method should be called from ACE_POSIX_Asynch_Operation::cancel() instead of usual aio_cancel. For all deferred AIO requests with handle "h" it removes its from the lists and notifies user. For all running AIO requests with handle "h" it calls aio_cancel. According to the POSIX standards we will receive ECANCELED for all aio_canceled AIO requests later on return from aio_suspend Reimplemented from ACE_POSIX_AIOCB_Proactor. |
|
From ACE_POSIX_AIOCB_Proactor. Attempt to cancel running request.
Reimplemented from ACE_POSIX_AIOCB_Proactor. |
|
Reimplemented from ACE_POSIX_AIOCB_Proactor. |
|
Check AIO for completion, error and result status Return: 1 - AIO completed , 0 - not completed yet.
|
|
Block indefinitely until at least one event is dispatched. Dispatch a single set of events. If <wait_time> elapses before any events occur, return 0. Return 1 on success i.e., when a completion is dispatched, non-zero (-1) on errors and errno is set accordingly. Reimplemented from ACE_POSIX_AIOCB_Proactor. |
|
Dispatch a single set of events. If <milli_seconds> elapses before any events occur, return 0. Return 1 if a completion is dispatched. Return -1 on errors. |
|
Dispatch a single set of events. If <wait_time> elapses before any events occur, return 0. Return 1 on success i.e., when a completion is dispatched, non-zero (-1) on errors and errno is set accordingly. Reimplemented from ACE_POSIX_AIOCB_Proactor. |
|
Notify queue of "post_completed" ACE_POSIX_Asynch_Results called from post_completion method.
Reimplemented from ACE_POSIX_AIOCB_Proactor. |
|
semaphore variable to notify used to wait the first AIO start.
|