template <>

class Server

Defined at line 387 of file fidling/gen/sdk/fidl/fuchsia.hardware.spmi/fuchsia.hardware.spmi/cpp/fidl/fuchsia.hardware.spmi/cpp/natural_messaging.h

Public Methods

void ExtendedRegisterReadLong (ExtendedRegisterReadLongRequest & request, ExtendedRegisterReadLongCompleter::Sync & completer)

Issue Extended Register Read Long SPMI commands to the SPMI device.

Used to read from a 16 bit SPMI register space.

When successful, it returns `size_bytes` in `data` read contiguously starting from

`address` in the device.

void ExtendedRegisterWriteLong (ExtendedRegisterWriteLongRequest & request, ExtendedRegisterWriteLongCompleter::Sync & completer)

Issue Extended Register Write Long SPMI commands to the SPMI device.

Used to write to a 16 bit SPMI register space.

When this command is successful, `data` will be written contiguously starting from

`address` in the device.

void GetProperties (GetPropertiesCompleter::Sync & completer)

Get the properties of the SPMI device.

void Server ()

Defined at line 390 of file fidling/gen/sdk/fidl/fuchsia.hardware.spmi/fuchsia.hardware.spmi/cpp/fidl/fuchsia.hardware.spmi/cpp/natural_messaging.h

void WatchControllerWriteCommands (WatchControllerWriteCommandsRequest & request, WatchControllerWriteCommandsCompleter::Sync & completer)

Hanging-get method to receive controller write commands from the device. `address` and

`size` specify the register range to monitor for commands. Multiple overlapping calls to

this method are not allowed.

Returns `INVALID_ARGS` if `address` or `size` are invalid, or `BAD_STATE` if another call

is pending for this register range. Returns `CANCELED` if

`CancelWatchControllerWriteCommands()` was called for this register range.

If this method is meant to keep the system awake (prevents suspension) while watch is setup,

use the passed-in `setup_wake_lease` `LeaseToken`. Then, when the watch is triggered this

method will return a second `wake_lease` `LeaseToken` to prevent suspension.

These keep alive wake lease tokens are provided by the Power Framework's System Activity

Governor. A driver supporting keep alive must be able to get `wake_lease` from System

Activity Governor.

When `wake_lease` is closed, then the created wake lease keeping the system from suspending

at the time of watch triggering is dropped. Hence, to guarantee that the system is not

suspended by the Power Framework a client must either keep this `wake_lease` for as long as

the system needs to stay awake, or a client must get its own wake lease from the Power

Framework before it drops `wake_lease` to prevent suspension.

void CancelWatchControllerWriteCommands (CancelWatchControllerWriteCommandsRequest & request, CancelWatchControllerWriteCommandsCompleter::Sync & completer)

Cancels an pending call to `WatchControllerWriteCommands`. `address` and `size` must

exactly match a previous call to `WatchControllerWriteCommands()`, otherwise `NOT_FOUND`

is returned.

Handler bind_handler (async_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 ~Server ()

Defined at line 391 of file fidling/gen/sdk/fidl/fuchsia.hardware.spmi/fuchsia.hardware.spmi/cpp/fidl/fuchsia.hardware.spmi/cpp/natural_messaging.h