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