class LocalService

Defined at line 6976 of file fidling/gen/sdk/fidl/fuchsia.bluetooth.gatt2/fuchsia.bluetooth.gatt2/hlcpp/fuchsia/bluetooth/gatt2/cpp/fidl.h

Interface for serving a local GATT service. Closing the server_end of this protocol causes the

GATT service to be removed from the local GATT database. Similarly, closure of the client_end

of this protocol means the Bluetooth stack has removed this service from its GATT database.

Public Methods

void ~LocalService ()
void CharacteristicConfiguration (::fuchsia::bluetooth::PeerId peer_id, ::fuchsia::bluetooth::gatt2::Handle handle, bool notify, bool indicate, CharacteristicConfigurationCallback callback)

This notifies the current configuration of a particular characteristic/descriptor for a

particular peer. It will be called when the peer GATT client changes the configuration.

The Bluetooth stack maintains the state of each peer's configuration across reconnections.

As such, this method will also be called when a peer connects for each characteristic with

the initial, persisted state of the newly-connected peer's configuration. However, clients

should not rely on this state being persisted indefinitely by the Bluetooth stack.

+ request `peer_id` The PeerId of the GATT client associated with this particular CCC.

+ request `handle` The handle of the characteristic associated with the `notify` and

`indicate` parameters.

+ request `notify` True if the client has enabled notifications, false otherwise.

+ request `indicate` True if the client has enabled indications, false otherwise.

- response empty Returns nothing to acknowledge the characteristic configuration.

void ReadValue (::fuchsia::bluetooth::PeerId peer_id, ::fuchsia::bluetooth::gatt2::Handle handle, int32_t offset, ReadValueCallback callback)

Called when a peer requests to read the value of a characteristic or descriptor. It is

guaranteed that the peer satisfies the permssions associated with this attribute.

+ request `peer_id` The PeerId of the GATT client making the read request.

+ request `handle` The handle of the requested descriptor/characteristic.

+ request `offset` The offset at which to start reading the requested value.

- response `value` The value of the characteristic.

* error See `gatt2.Error` documentation for possible errors.

void WriteValue (::fuchsia::bluetooth::gatt2::LocalServiceWriteValueRequest LocalServiceWriteValueRequest, WriteValueCallback callback)

Called when a peer issues a request to write the value of a characteristic or descriptor. It

is guaranteed that the peer satisfies the permissions associated with this attribute.

+ request `peer_id` The PeerId of the GATT client making the write request. Always present.

+ request `handle` The handle of the requested descriptor/characteristic. Always present.

+ request `offset` The offset at which to start writing the value. If the offset is 0, any

existing value should be overwritten by the new value. Otherwise, the existing value from

offset:(offset + len(value)) should be changed to `value`. Always present.

+ request `value` The new value for the descriptor/characteristic. Always present, but may

be the empty string.

- response The implementation must send an empty response once the value has been updated

as confirmation.

* error See `gatt2.Error` documentation for possible errors.

void PeerUpdate (::fuchsia::bluetooth::gatt2::LocalServicePeerUpdateRequest LocalServicePeerUpdateRequest, PeerUpdateCallback callback)

Called to provide GATT information specific to a peer. PeerUpdate will not be called unless

the prior invocation received a response. As such, the implementation can simply ignore the

first invocation if they are not interested in any PeerUpdate fields.

A PeerUpdate will be made before propagating any other interaction from the peer to the

LocalService (Write/ReadValue, CharacteristicConfiguration) on a best-effort basis, as long

as all preceding PeerUpdates were acknowledged.

Not currently sent. Comment on https://fxbug.dev/42178509 to request support

+ request `peer_id` The PeerId the update pertains to. Always present.

+ request `mtu` The maximum number of bytes that fit in a notification/indication to this

peer. Any bytes past this limit are silently truncated. Most clients need not concern

themselves with this unless they are using notifications/indications for high throughput.

Optional.

- response An empty response to acknowledge that the update was received.

void ValueChangedCredit (uint8_t additional_credit)

Add credit for sending indications/notifications. Implementors are defined to start out with

INITIAL_VALUE_CHANGED_CREDITS credits before this method is called. Implementors must keep

track of the available credit they have. The implementor can send exactly one OnNotifyValue

or OnIndicateValue event for each credit. Note that `ValueChangedCredit` will only be called

if at least one indication/notification has been sent since the prior call.