Reference

ACE_Asynch_Result_Impl(3)

Abstract base class for the all the classes that provide concrete implementations for ACE_Asynch_Result.

NAME

ACE_Asynch_Result_Impl -

Abstract base class for the all the classes that provide concrete implementations for ACE_Asynch_Result.

SYNOPSIS

class ACE_Asynch_Result_Impl
{
  public:
    virtual ~ACE_Asynch_Result_Impl (void);
    virtual u_long bytes_transferred (void) const = 0;
    virtual const void *act (void) const = 0;
    virtual int success (void) const = 0;
    virtual const void *completion_key (void) const = 0;
    virtual u_long error (void) const = 0;
    virtual ACE_HANDLE event (void) const = 0;
    virtual u_long offset (void) const = 0;
    virtual u_long offset_high (void) const = 0;
    virtual int priority (void) const = 0;
    virtual int signal_number (void) const = 0;
    virtual void complete (
        u_long bytes_transferred,
        int success,
        const void *completion_key,
        u_long error = 0
        ) = 0;
    virtual int post_completion (ACE_Proactor_Impl *proactor) = 0;
  protected:
    ACE_Asynch_Result_Impl (void);
};

DESCRIPTION

This class contains asbtract base classes for all the concrete implementation classes for the various asynchronous operations that are used with the Praoctor.

PUBLIC MEMBERS

virtual ~ACE_Asynch_Result_Impl (void);

virtual u_long bytes_transferred (void) const = 0;

Number of bytes transferred by the operation.

virtual const void *act (void) const = 0;

ACT associated with the operation.

virtual int success (void) const = 0;

Did the operation succeed?

virtual const void *completion_key (void) const = 0;

This ACT is not the same as the ACT associated with the asynchronous operation.

virtual u_long error (void) const = 0;

Error value if the operation fail.

virtual ACE_HANDLE event (void) const = 0;

Event associated with the OVERLAPPED structure.

virtual u_long offset (void) const = 0;

virtual u_long offset_high (void) const = 0;

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

virtual int priority (void) const = 0;

Priority of the operation.

virtual int signal_number (void) const = 0;

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.

virtual void complete (
    u_long bytes_transferred,
    int success,
    const void *completion_key,
    u_long error = 0
    ) = 0;

This is called when the asynchronous operation completes.

virtual int post_completion (ACE_Proactor_Impl *proactor) = 0;

Post this to the Proactor's completion port.

PROTECTED MEMBERS

ACE_Asynch_Result_Impl (void);

Do-nothing constructor.

AUTHOR

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

LIBRARY

ace