Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members   Related Pages  

ACE_POSIX_CB_Proactor Class Reference

Implementation of SGI IRIX Proactor };. More...

#include <POSIX_CB_Proactor.h>

Inheritance diagram for ACE_POSIX_CB_Proactor:

Inheritance graph
[legend]
Collaboration diagram for ACE_POSIX_CB_Proactor:

Collaboration graph
[legend]
List of all members.

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


Detailed Description

Implementation of SGI IRIX Proactor };.


Constructor & Destructor Documentation

ACE_POSIX_CB_Proactor::~ACE_POSIX_CB_Proactor void    [virtual]
 

Destructor.

ACE_POSIX_CB_Proactor::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.


Member Function Documentation

void ACE_POSIX_CB_Proactor::aio_completion_func sigval_t    cb_data [static, protected]
 

int ACE_POSIX_CB_Proactor::allocate_aio_slot ACE_POSIX_Asynch_Result   result [protected, virtual]
 

Find free slot to store result and aiocb pointer.

Reimplemented from ACE_POSIX_AIOCB_Proactor.

int ACE_POSIX_CB_Proactor::cancel_aio ACE_HANDLE    handle [protected, virtual]
 

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.

int ACE_POSIX_CB_Proactor::cancel_aiocb ACE_POSIX_Asynch_Result   result [protected, virtual]
 

From ACE_POSIX_AIOCB_Proactor. Attempt to cancel running request.

Reimplemented from ACE_POSIX_AIOCB_Proactor.

virtual Proactor_Type ACE_POSIX_CB_Proactor::get_impl_type void    [virtual]
 

Reimplemented from ACE_POSIX_AIOCB_Proactor.

int ACE_POSIX_CB_Proactor::get_result_status ACE_POSIX_Asynch_Result   asynch_result,
int &    error_status,
int &    return_status
[protected, virtual]
 

Check AIO for completion, error and result status Return: 1 - AIO completed , 0 - not completed yet.

int ACE_POSIX_CB_Proactor::handle_events void    [protected, virtual]
 

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.

virtual int ACE_POSIX_CB_Proactor::handle_events u_long    milli_seconds [protected, virtual]
 

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.

int ACE_POSIX_CB_Proactor::handle_events ACE_Time_Value   wait_time [protected, virtual]
 

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.

int ACE_POSIX_CB_Proactor::notify_completion int    sig_num [protected, virtual]
 

Notify queue of "post_completed" ACE_POSIX_Asynch_Results called from post_completion method.

Reimplemented from ACE_POSIX_AIOCB_Proactor.


Member Data Documentation

ACE_SYNCH_SEMAPHORE ACE_POSIX_CB_Proactor::sema_ [protected]
 

semaphore variable to notify used to wait the first AIO start.


The documentation for this class was generated from the following files:
Generated on Fri Nov 22 06:01:43 2002 for ACE by doxygen1.2.13.1 written by Dimitri van Heesch, © 1997-2001