class Dispatcher

Defined at line 47 of file ../../src/graphics/display/lib/driver-framework-migration-utils/dispatcher/dispatcher.h

A RAII wrapper of an asynchronous dispatcher and its running environment.

Examples of running environments of async dispatchers include:

- An `async::Loop` owned by the `Dispatcher` itself, spawning a thread to

dispatch all its tasks on.

- An `fdf::Dispatcher` co-managed by the Driver Framework, running on a

background thread owned by the Driver Framework.

# Dispatcher capability

A `display::Dispatcher` must support dispatching both async tasks and async

interrupt requests.

# Dispatcher availability

`display::Dispatcher` will not actively shut down the async dispatcher's

running environment until the `display::Dispatcher` is destroyed. However,

a third party may also shut down the running environment, in which case the

availability of the async dispatcher will be also determined by the side

contract between the running environment and the third party.

For example, for a `display::Dispatcher` with an `fdf::Dispatcher` backend,

the Driver Framework may choose to early-shutdown the `fdf::Dispatcher`,

which makes the `async_dispatcher_t` unable to dispatch any task, even if

the `display::Dispatcher` is still alive.

# Thread safety

The `async_dispatcher()` getter must not be used concurrently with

destruction of the `Dispatcher`.

TODO(https://fxbug.dev/323061435): This class should be only used when the

display drivers are being migrated to DFv2. Drivers should replace

`display::Dispatcher` with `fdf::SynchronizedDispatcher` when the migration

is done.

Public Methods

void Dispatcher ()

Defined at line 49 of file ../../src/graphics/display/lib/driver-framework-migration-utils/dispatcher/dispatcher.h

void ~Dispatcher ()

Defined at line 50 of file ../../src/graphics/display/lib/driver-framework-migration-utils/dispatcher/dispatcher.h

void Dispatcher (const Dispatcher & )

Defined at line 52 of file ../../src/graphics/display/lib/driver-framework-migration-utils/dispatcher/dispatcher.h

void Dispatcher (Dispatcher && )

Defined at line 53 of file ../../src/graphics/display/lib/driver-framework-migration-utils/dispatcher/dispatcher.h

async_dispatcher_t * async_dispatcher ()
Dispatcher & operator= (const Dispatcher & )

Defined at line 54 of file ../../src/graphics/display/lib/driver-framework-migration-utils/dispatcher/dispatcher.h

Dispatcher & operator= (Dispatcher && )

Defined at line 55 of file ../../src/graphics/display/lib/driver-framework-migration-utils/dispatcher/dispatcher.h