Reference

ACE_POSIX_Asynch_Read_File_Result(3)

This class provides concrete implementation for ACE_Asynch_Read_File::Result class for POSIX platforms.

NAME

ACE_POSIX_Asynch_Read_File_Result -

This class provides concrete implementation for ACE_Asynch_Read_File::Result class for POSIX platforms.

SYNOPSIS

class ACE_POSIX_Asynch_Read_File_Result : 
  public virtual ACE_Asynch_Read_File_Result_Impl,
  public ACE_POSIX_Asynch_Read_Stream_Result
{
  public:
    friend class ACE_POSIX_AIOCB_Asynch_Read_File;
    friend class ACE_POSIX_SIG_Asynch_Read_File;
    friend class ACE_POSIX_Proactor;
    u_long bytes_transferred (void) const;
    const void *act (void) const;
    int success (void) const;
    const void *completion_key (void) const;
    u_long error (void) const;
    ACE_HANDLE event (void) const;
    u_long offset (void) const;
    u_long offset_high (void) const;
    int priority (void) const;
    int signal_number (void) const;
    u_long bytes_to_read (void) const;
    ACE_Message_Block &message_block (void) const;
    ACE_HANDLE handle (void) const;
    int post_completion (ACE_Proactor_Impl *proactor);
  protected:
    ACE_POSIX_Asynch_Read_File_Result (
        ACE_Handler &handler,
        ACE_HANDLE handle,
        ACE_Message_Block &message_block,
        u_long bytes_to_read,
        const void* act,
        u_long offset,
        u_long offset_high,
        ACE_HANDLE event,
        int priority,
        int signal_number
        );
    virtual void complete (
        u_long bytes_transferred,
        int success,
        const void *completion_key,
        u_long error
        );
    virtual ~ACE_POSIX_Asynch_Read_File_Result (void);
};

DESCRIPTION

The implementation classes for POSIX implementation of Asynch Operations are defined here in this file.

These methods belong to ACE_POSIX_Asynch_Result class base

class. These operations are here to kill dominance warnings. These methods call the base class methods.

u_long bytes_transferred (void) const;

Number of bytes transferred by the operation.

const void *act (void) const;

ACT associated with the operation.

int success (void) const;

Did the operation succeed?

const void *completion_key (void) const;

This is the ACT associated with the handle on which the Asynch_Operation takes place.

@@ This is not implemented for POSIX4 platforms.

u_long error (void) const;

Error value if the operation fail.

ACE_HANDLE event (void) const;

This returns ACE_INVALID_HANDLE on POSIX4 platforms.

u_long offset (void) const;

u_long offset_high (void) const;

This really make sense only when doing file I/O.

@@ On POSIX4-Unix, offset_high should be supported using
aiocb64.

int priority (void) const;

The priority of the asynchronous operation.

int signal_number (void) const;

POSIX4 real-time signal number to be used for the operation. signal_number ranges from SIGRTMIN to SIGRTMAX. By default, SIGRTMIN is used to issue aio_ calls. This is a no-op on non-POSIX4 systems and returns 0.

The following methods belong to

ACE_POSIX_Asynch_Read_Stream_Result. They are here to avoid dominance warnings. These methods route their call to the ACE_POSIX_Asynch_Read_Stream_Result base class.

u_long bytes_to_read (void) const;

The number of bytes which were requested at the start of the asynchronous read.

ACE_Message_Block &message_block (void) const;

Message block which contains the read data.

ACE_HANDLE handle (void) const;

I/O handle used for reading.

int post_completion (ACE_Proactor_Impl *proactor);

Post this to the Proactor.

AUTHOR

Irfan Pyarali ([email protected]), Tim Harrison ([email protected]) and Alexander Babu Arulanthu [email protected]

LIBRARY

ace