template <>

class WireServer

Defined at line 2559 of file fidling/gen/sdk/fidl/fuchsia.hardware.spiimpl/fuchsia.hardware.spiimpl/cpp/fidl/fuchsia.hardware.spiimpl/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_spiimpl::SpiImpl>|

and |::fdf::ServerEnd

<

::fuchsia_hardware_spiimpl::SpiImpl>|).

Public Methods

void GetChipSelectCount (fdf::Arena & arena, GetChipSelectCountCompleter::Sync & completer)

Returns the number of chip select lines available or provided by the driver instance.

To be used as a limit on the acceptable values for the `chip_select' field in the Exchange()

and ExchangeVmo() methods.

void TransmitVector (::fuchsia_hardware_spiimpl::wire::SpiImplTransmitVectorRequest * request, fdf::Arena & arena, TransmitVectorCompleter::Sync & completer)

Half-duplex transmit data to a SPI device; always transmits the entire buffer on success.

void ReceiveVector (::fuchsia_hardware_spiimpl::wire::SpiImplReceiveVectorRequest * request, fdf::Arena & arena, ReceiveVectorCompleter::Sync & completer)

Half-duplex receive data from a SPI device; always reads the full size requested.

void ExchangeVector (::fuchsia_hardware_spiimpl::wire::SpiImplExchangeVectorRequest * request, fdf::Arena & arena, ExchangeVectorCompleter::Sync & completer)

Full-duplex SPI transaction. Received data will exactly equal the length of the transmit

buffer.

void LockBus (::fuchsia_hardware_spiimpl::wire::SpiImplLockBusRequest * request, fdf::Arena & arena, LockBusCompleter::Sync & completer)

Lock the bus.

void UnlockBus (::fuchsia_hardware_spiimpl::wire::SpiImplUnlockBusRequest * request, fdf::Arena & arena, UnlockBusCompleter::Sync & completer)

Unlock the bus.

void RegisterVmo (::fuchsia_hardware_spiimpl::wire::SpiImplRegisterVmoRequest * request, fdf::Arena & arena, RegisterVmoCompleter::Sync & completer)

rights is a bit field containing SpiVmoRight values, and determines the read/write

permissions used by the implementation when pinning or mapping the VMO.

void UnregisterVmo (::fuchsia_hardware_spiimpl::wire::SpiImplUnregisterVmoRequest * request, fdf::Arena & arena, UnregisterVmoCompleter::Sync & completer)
void ReleaseRegisteredVmos (::fuchsia_hardware_spiimpl::wire::SpiImplReleaseRegisteredVmosRequest * request, fdf::Arena & arena, ReleaseRegisteredVmosCompleter::Sync & completer)

Release all VMOs registered to this chip_select. Called by the core driver after the client

has disconnected and the VMOs are no longer needed.

void TransmitVmo (::fuchsia_hardware_spiimpl::wire::SpiImplTransmitVmoRequest * request, fdf::Arena & arena, TransmitVmoCompleter::Sync & completer)
void ReceiveVmo (::fuchsia_hardware_spiimpl::wire::SpiImplReceiveVmoRequest * request, fdf::Arena & arena, ReceiveVmoCompleter::Sync & completer)
void ExchangeVmo (::fuchsia_hardware_spiimpl::wire::SpiImplExchangeVmoRequest * request, fdf::Arena & arena, ExchangeVmoCompleter::Sync & completer)
void WireServer ()

Defined at line 2562 of file fidling/gen/sdk/fidl/fuchsia.hardware.spiimpl/fuchsia.hardware.spiimpl/cpp/fidl/fuchsia.hardware.spiimpl/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 2563 of file fidling/gen/sdk/fidl/fuchsia.hardware.spiimpl/fuchsia.hardware.spiimpl/cpp/fidl/fuchsia.hardware.spiimpl/cpp/driver/wire_messaging.h