# async::Executor

## Summary

### Inheritance

Inherits from: [fpromise::executor](https://fuchsia.dev/reference/cpp/class/fpromise/executor)

| ### Constructors and Destructors ||
|---|---|
| `https://fuchsia.dev/reference/cpp/class/async/executor#classasync_1_1_executor_1a1ecd7c2b7936f6641b4d7cdf445486fc(async_dispatcher_t *dispatcher)` ||
| `https://fuchsia.dev/reference/cpp/class/async/executor#classasync_1_1_executor_1addfa21acbeefeae480b6b8e4860c9687(const https://fuchsia.dev/reference/cpp/class/async/executor#classasync_1_1_executor &)` ||
| `https://fuchsia.dev/reference/cpp/class/async/executor#classasync_1_1_executor_1a5af6bbc3d5cc381048d5b93758211afc(https://fuchsia.dev/reference/cpp/class/async/executor#classasync_1_1_executor &&)` ||
| `https://fuchsia.dev/reference/cpp/class/async/executor#classasync_1_1_executor_1a4625ff647d86d4ce448d67fd457b529b()` ||

| ### Public functions ||
|---|---|
| `https://fuchsia.dev/reference/cpp/class/async/executor#classasync_1_1_executor_1a1ed575744c3f6bd2cb301fa96638911a(https://fuchsia.dev/reference/cpp/class/zx/duration#classzx_1_1duration duration)` | `https://fuchsia.dev/reference/cpp/class/fpromise/promise-impl#classfpromise_1_1promise__impl` |
| `https://fuchsia.dev/reference/cpp/class/async/executor#classasync_1_1_executor_1ad6ead27b59aba83d0830d37a3ce5d97a(https://fuchsia.dev/reference/cpp/class/zx/basic-time#classzx_1_1basic__time deadline)` | `https://fuchsia.dev/reference/cpp/class/fpromise/promise-impl#classfpromise_1_1promise__impl` |
| `https://fuchsia.dev/reference/cpp/class/async/executor#classasync_1_1_executor_1ad4749cdc409447757f305c0720f115e4(https://fuchsia.dev/reference/cpp/other/singletonzx/unowned#singletonzx_1_1unowned object, zx_signals_t trigger, uint32_t options)` | `https://fuchsia.dev/reference/cpp/class/fpromise/promise-impl#classfpromise_1_1promise__impl< https://fuchsia.dev/reference/cpp/struct/zx-packet-signal#structzx__packet__signal, zx_status_t >` |
| `https://fuchsia.dev/reference/cpp/class/async/executor#classasync_1_1_executor_1a6d5bfd0ea5c73269713526d8b79a27b0() const ` | `async_dispatcher_t *` |
| `https://fuchsia.dev/reference/cpp/class/async/executor#classasync_1_1_executor_1a1b019cd068379c4016e7635e1a673517(const https://fuchsia.dev/reference/cpp/class/async/executor#classasync_1_1_executor &)=delete` | `https://fuchsia.dev/reference/cpp/class/async/executor#classasync_1_1_executor &` |
| `https://fuchsia.dev/reference/cpp/class/async/executor#classasync_1_1_executor_1a9fb06ba4d97da2ddff951da2ef14d307(https://fuchsia.dev/reference/cpp/class/async/executor#classasync_1_1_executor &&)=delete` | `https://fuchsia.dev/reference/cpp/class/async/executor#classasync_1_1_executor &` |
| `https://fuchsia.dev/reference/cpp/class/async/executor#classasync_1_1_executor_1a85b416f6611ce96aab92dbf0a6c651e1(https://fuchsia.dev/reference/cpp/class/fpromise/pending-task#classfpromise_1_1pending__task task) override` | `virtual void` |

## Public functions

### Executor

```c++
 Executor(
  async_dispatcher_t *dispatcher
)
```

### Executor

```c++
 Executor(
  const Executor &
)=delete
```

### Executor

```c++
 Executor(
  Executor &&
)=delete
```

### MakeDelayedPromise

```c++
fpromise::promise MakeDelayedPromise(
  zx::duration duration
)
```

### MakePromiseForTime

```c++
fpromise::promise MakePromiseForTime(
  zx::time deadline
)
```

### MakePromiseWaitHandle

```c++
fpromise::promise< zx_packet_signal_t, zx_status_t > MakePromiseWaitHandle(
  zx::unowned_handle object,
  zx_signals_t trigger,
  uint32_t options
)
```

### dispatcher

```c++
async_dispatcher_t * dispatcher() const 
```

### operator=

```c++
Executor & operator=(
  const Executor &
)=delete
```

### operator=

```c++
Executor & operator=(
  Executor &&
)=delete
```

### schedule_task

```c++
virtual void schedule_task(
  fpromise::pending_task task
) override
```

### \~Executor

```c++
 ~Executor() override
```