template <>

class WireServer

Defined at line 3330 of file fidling/gen/sdk/fidl/fuchsia.hardware.display.engine/fuchsia.hardware.display.engine/cpp/fidl/fuchsia.hardware.display.engine/cpp/driver/wire_messaging.h

Pure-virtual interface to be implemented by a server.

This interface uses typed channels (i.e. |::fdf::ClientEnd

<

::fuchsia_hardware_display_engine::Engine>|

and |::fdf::ServerEnd

<

::fuchsia_hardware_display_engine::Engine>|).

Public Methods

void CompleteCoordinatorConnection (::fuchsia_hardware_display_engine::wire::EngineCompleteCoordinatorConnectionRequest * request, fdf::Arena & arena, CompleteCoordinatorConnectionCompleter::Sync & completer)

Starts the information flow from the engine driver to the Coordinator.

Must be called exactly once, before all the other calls below.

void UnsetListener (fdf::Arena & arena, UnsetListenerCompleter::Sync & completer)

Clears the `DisplayEngineListener` connection established by

[`Engine.CompleteCoordinatorConnection`].

void ImportBufferCollection (::fuchsia_hardware_display_engine::wire::EngineImportBufferCollectionRequest * request, fdf::Arena & arena, ImportBufferCollectionCompleter::Sync & completer)

Sets up this driver to use a Sysmem BufferCollection.

Fails with ZX_ERR_INTERNAL if any error occurs during the setup process,

which mainly consists of communicating with the Sysmem service.

void ReleaseBufferCollection (::fuchsia_hardware_display_engine::wire::EngineReleaseBufferCollectionRequest * request, fdf::Arena & arena, ReleaseBufferCollectionCompleter::Sync & completer)

Releases the resources needed to use a Sysmem BufferCollection.

TODO(https://fxbug.dev/394954078): Make this method infallible.

void ImportImage (::fuchsia_hardware_display_engine::wire::EngineImportImageRequest * request, fdf::Arena & arena, ImportImageCompleter::Sync & completer)

Sets up the hardware to use a buffer as a display image data source.

Fails with ZX_ERR_SHOULD_WAIT if Sysmem reports that the

BufferCollection's buffers are not yet allocated. Fails with

ZX_ERR_INTERNAL if any other error occurs while obtaining the buffer

from the Sysmem service.

void ImportImageForCapture (::fuchsia_hardware_display_engine::wire::EngineImportImageForCaptureRequest * request, fdf::Arena & arena, ImportImageForCaptureCompleter::Sync & completer)

Sets up the hardware to use a buffer for display capture output.

This call must only be issued when the engine driver supports capture.

Capture support is reported in [`EngineInfo.is_capture_supported`]

returned by [`Engine.CompleteCoordinatorConnection`].

Fails with ZX_ERR_SHOULD_WAIT if Sysmem reports that the

BufferCollection's buffers are not yet allocated. Fails with

ZX_ERR_INTERNAL if any other error occurs while obtaining the buffer

from the Sysmem service.

void ReleaseImage (::fuchsia_hardware_display_engine::wire::EngineReleaseImageRequest * request, fdf::Arena & arena, ReleaseImageCompleter::Sync & completer)

Releases resources for using a buffer as a display image data source.

void CheckConfiguration (::fuchsia_hardware_display_engine::wire::EngineCheckConfigurationRequest * request, fdf::Arena & arena, CheckConfigurationCompleter::Sync & completer)

Verifies that a configuration can be presented on a display.

The verification result must be valid for any configuration derived from

the given configuration.

A derived configuration can be obtained from another configuration by

applying one or more of the following operations. The list of operations

is expected to slowly grow over time.

* Replace an image ID with another image ID. The two IDs must identify

images that were imported with the same metadata.

void ApplyConfiguration (::fuchsia_hardware_display_engine::wire::EngineApplyConfigurationRequest * request, fdf::Arena & arena, ApplyConfigurationCompleter::Sync & completer)

Submits a configuration for future presentation on a display.

void SetBufferCollectionConstraints (::fuchsia_hardware_display_engine::wire::EngineSetBufferCollectionConstraintsRequest * request, fdf::Arena & arena, SetBufferCollectionConstraintsCompleter::Sync & completer)

Conveys the display hardware's limitations on image buffers to sysmem.

Fails with ZX_ERR_INTERNAL if any error occurs while communicating with

the the Sysmem service.

void SetDisplayPowerMode (::fuchsia_hardware_display_engine::wire::EngineSetDisplayPowerModeRequest * request, fdf::Arena & arena, SetDisplayPowerModeCompleter::Sync & completer)

Sets a display's power mode.

Returns `ZX_ERR_NOT_SUPPORTED` if the display driver or hardware does

not support the requested power mode.

void SetMinimumRgb (::fuchsia_hardware_display_engine::wire::EngineSetMinimumRgbRequest * request, fdf::Arena & arena, SetMinimumRgbCompleter::Sync & completer)

Set the minimum value of RGB channels.

Fails with ZX_ERR_NOT_SUPPORTED if RGB clamping is not supported. Most

engine drivers are expected to fail in this manner.

void StartCapture (::fuchsia_hardware_display_engine::wire::EngineStartCaptureRequest * request, fdf::Arena & arena, StartCaptureCompleter::Sync & completer)

Starts a display capture operation.

The engine driver must not be performing another capture operation. The

capture operation is considered to be in-progress from the moment when a

successful call to [`DisplayEngine.StartCapture`] is issued, until the

moment when the engine driver issues a call to

[`DisplayEngineListener.OnCaptureComplete`].

This call must only be issued when the engine driver supports capture.

Capture support is reported in [`EngineInfo.is_capture_supported`]

returned by [`Engine.CompleteCoordinatorConnection`].

This call must only be issued after a configuration has been applied to

the display.

Fails with ZX_ERR_IO_REFUSED if the display engine hardware failed to

start the capture. This error could point to a systemic issue, such as

the system having insufficient DRAM bandwidth to capture the currently

applied display configuration. This error could also be caused by a

temporary hardware failure.

void ReleaseCapture (::fuchsia_hardware_display_engine::wire::EngineReleaseCaptureRequest * request, fdf::Arena & arena, ReleaseCaptureCompleter::Sync & completer)

Releases resources for using a buffer for display capture output.

This call must only be issued when the engine driver supports capture.

Capture support is reported in [`EngineInfo.is_capture_supported`]

returned by [`Engine.CompleteCoordinatorConnection`].

TODO(https://fxbug.dev/394954078): Make this method infallible.

void WireServer ()

Defined at line 3333 of file fidling/gen/sdk/fidl/fuchsia.hardware.display.engine/fuchsia.hardware.display.engine/cpp/fidl/fuchsia.hardware.display.engine/cpp/driver/wire_messaging.h

Handler bind_handler (fdf_dispatcher_t * dispatcher)

|bind_handler| returns a handler that binds incoming connections to this

server implementation.

The returned handler borrows the server instance.

The server must outlive the provided |dispatcher|. Only after

the dispatcher is shutdown will it be safe to destroy the servers.

The server should not be moved.

void ~WireServer ()

Defined at line 3334 of file fidling/gen/sdk/fidl/fuchsia.hardware.display.engine/fuchsia.hardware.display.engine/cpp/fidl/fuchsia.hardware.display.engine/cpp/driver/wire_messaging.h