---
name: "ACE_Asynch_Result_Impl"
section: "3"
platform: "linux"
package: "libace-doc"
version: "5.0.7-4"
release: "Debian 2.2 (Potato)"
platforms: ["linux"]
url: "https://new.carta.tech/ACE_Asynch_Result_Impl"
---

# 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 (irfan@cs.wustl.edu), Tim Harrison (harrison@cs.wustl.edu) and Alexander Babu Arulanthu alex@cs.wustl.edu

## LIBRARY

ace
