template <>

class Server

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

Public Methods

void GetBurstProperties (GetBurstPropertiesCompleter::Sync & completer)

Returns the size and period of bursts reported by the sensor.

- response `size` the size of each radar burst in bytes.

- response `period` the time between bursts in nanoseconds.

void EnqueueBursts (EnqueueBurstsRequest & request, EnqueueBurstsCompleter::Sync & completer)

Enqueues the given VMO with burst data to be injected. After all bursts

from this VMO have been injected, radar-proxy will move on to the next

VMO in the queue. The caller must not write to the VMO until it has been

returned by `OnBurstsDelivered()`. The VMO will be closed and unmapped

if the injector client unexpectedly disconnects.

Bursts are injected by radar-proxy at the rate reported by the

underlying driver's `GetBurstProperties()` method. If no VMOs are in the

queue at the time that a burst is to be delivered, radar-proxy will stop

sending bursts until either `EnqueueBursts()` or `StopBurstInjection()`

is called.

+ request `bursts` the `BurstData` struct containing bursts to inject.

- response `bursts_id` the ID to be passed back through

`OnBurstsDelivered()` after the final burst from this buffer has

been injected.

* error one of the following `StatusCode` values:

* `VMO_BAD_HANDLE`: The VMO handle was invalid.

* `VMO_ACCESS_DENIED`: The VMO had insufficient rights.

* `VMO_TOO_SMALL`: The VMO was too small to hold the indicated number

* of bursts.

* `INVALID_ARGS`: The number of bursts was zero.

* `BAD_STATE`: A previous call to `StopBurstInjection()` is still

* pending.

void Server ()

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

void StartBurstInjection (StartBurstInjectionCompleter::Sync & completer)

Tells radar-proxy to read future bursts from enqueued VMOs rather than

from the real radar driver. radar-proxy will attempt to deliver the

first injected burst at the time that the radar driver would have done

so. If the queue is or becomes empty then sending of bursts will stop

until more bursts are available in the queue. See `EnqueueBursts()`

above.

radar-proxy will call `StopBursts()` on the real radar driver before

it starts to deliver the enqueued bursts.

* error one of the following `StatusCode` values:

* `BAD_STATE`: Injection has already been started, or a previous call

* to `StopBurstInjection()` is still pending.

void StopBurstInjection (StopBurstInjectionCompleter::Sync & completer)

Tells radar-proxy to finish injecting bursts from VMOs currently on the

queue then switch back to delivering bursts from the real radar driver.

The reply to this call will not be sent until `OnBurstsDelivered()` has

been called for the final VMO to be injected, and any other calls made

in that time will return errors.

radar-proxy will call `StartBursts()` on the real radar driver as part

of this call. There may be a delay before RadarBurstReader clients start

to receive bursts from the driver again.

* error one of the following `StatusCode` values:

* `BAD_STATE`: Injection has already been stopped, or a call to this

* method is still pending.

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 1285 of file fidling/gen/sdk/fidl/fuchsia.hardware.radar/fuchsia.hardware.radar/cpp/fidl/fuchsia.hardware.radar/cpp/natural_messaging.h