## NAME

ACE_POSIX_AIOCB_Proactor -

This Proactor makes use of Asynchronous I/O Control Blocks (AIOCB) to notify/get the completion status of the `aio_` operations issued.

## SYNOPSIS

    #include <ace/POSIX_Proactor.h>

    class ACE_POSIX_AIOCB_Proactor : public ACE_POSIX_Proactor
    {
      public:
        friend class ACE_AIOCB_Notify_Pipe_Manager;
        friend class ACE_POSIX_AIOCB_Asynch_Operation;
        ACE_POSIX_AIOCB_Proactor (void);
        virtual ~ACE_POSIX_AIOCB_Proactor (void);
        virtual int handle_events (ACE_Time_Value &wait_time);
        virtual int handle_events (void);
        virtual int post_completion (ACE_POSIX_Asynch_Result *result);
        virtual ACE_Asynch_Read_Stream_Impl *create_asynch_read_stream (
            void
            );
        virtual ACE_Asynch_Write_Stream_Impl *create_asynch_write_stream (
            void
            );
        virtual ACE_Asynch_Read_File_Impl *create_asynch_read_file (void);
        virtual ACE_Asynch_Write_File_Impl *create_asynch_write_file (
            void
            );
        virtual ACE_Asynch_Accept_Impl *create_asynch_accept (void);
        virtual ACE_Asynch_Transmit_File_Impl *create_asynch_transmit_file (
            void
            );
      protected:
        virtual int handle_events (unsigned long milli_seconds);
        void application_specific_code (
            ACE_POSIX_Asynch_Result *asynch_result,
            u_long bytes_transferred,
            int success,
            const void *completion_key,
            u_long error
            );
        int register_aio_with_proactor (ACE_POSIX_Asynch_Result *result);
        ACE_AIOCB_Notify_Pipe_Manager* aiocb_notify_pipe_manager_;
        aiocb *aiocb_list_ [ACE_RTSIG_MAX];
        ACE_POSIX_Asynch_Result *result_list_ [ACE_RTSIG_MAX];
        size_t aiocb_list_max_size_;
        size_t aiocb_list_cur_size_;
    };

## DESCRIPTION

## Methods used to create Asynch_IO objects. We create the right

objects here in these methods.

    virtual ACE_Asynch_Read_Stream_Impl *create_asynch_read_stream (void);

    virtual ACE_Asynch_Write_Stream_Impl *create_asynch_write_stream (
        void
        );

    virtual ACE_Asynch_Read_File_Impl *create_asynch_read_file (void);

    virtual ACE_Asynch_Write_File_Impl *create_asynch_write_file (void);

    virtual ACE_Asynch_Accept_Impl *create_asynch_accept (void);

    virtual ACE_Asynch_Transmit_File_Impl *create_asynch_transmit_file (
        void
        );

## AUTHOR

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

## LIBRARY

ace