template <>

class WireServer

Defined at line 3340 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.

The implementation must ignore any Sysmem information around weak VMO

handles. Display stack consumers are responsible for ensuring that weak

VMOs are closed in a timely manner, which may involve calling

[`Engine.ReleaseImage`] and [`Engine.ApplyConfiguration`].

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.

The implementation must ignore any Sysmem information around weak VMO

handles. Display stack consumers are responsible for ensuring that weak

VMOs are closed in a timely manner, which may involve calling

[`Engine.ReleaseImage`] and [`Engine.ApplyConfiguration`].

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 3343 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 3344 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