pub struct RemoteServiceProxy { /* private fields */ }
Implementations§
Source§impl RemoteServiceProxy
impl RemoteServiceProxy
Sourcepub fn new(channel: AsyncChannel) -> Self
pub fn new(channel: AsyncChannel) -> Self
Create a new Proxy for fuchsia.bluetooth.gatt2/RemoteService.
Sourcepub fn take_event_stream(&self) -> RemoteServiceEventStream
pub fn take_event_stream(&self) -> RemoteServiceEventStream
Get a Stream of events from the remote end of the protocol.
§Panics
Panics if the event stream was already taken.
Sourcepub fn discover_characteristics(
&self,
) -> QueryResponseFut<Vec<Characteristic>, DefaultFuchsiaResourceDialect>
pub fn discover_characteristics( &self, ) -> QueryResponseFut<Vec<Characteristic>, DefaultFuchsiaResourceDialect>
Returns the characteristics and characteristic descriptors that belong to this service.
Sourcepub fn read_by_type(
&self,
uuid: &Uuid,
) -> QueryResponseFut<RemoteServiceReadByTypeResult, DefaultFuchsiaResourceDialect>
pub fn read_by_type( &self, uuid: &Uuid, ) -> QueryResponseFut<RemoteServiceReadByTypeResult, DefaultFuchsiaResourceDialect>
Reads characteristics and descriptors with the given uuid
.
This method is useful for reading values before discovery has completed, thereby reducing latency.
- request
uuid
The UUID of the characteristics/descriptors to read.
- response
results
The results of the read. May be empty if no matching values are read. If reading a value results in a permission error, the handle and error will be included.
- error Returns
INVALID_PARAMETERS
ifuuid
refers to an internally reserved descriptor type (e.g. the Client Characteristic Configuration descriptor). - error Returns
TOO_MANY_RESULTS
if more results were read than can fit in a FIDL response. Consider reading characteristics/descriptors individually after performing discovery. - error Returns
FAILURE
if the server returns an error not specific to a single result.
Sourcepub fn read_characteristic(
&self,
handle: &Handle,
options: &ReadOptions,
) -> QueryResponseFut<RemoteServiceReadCharacteristicResult, DefaultFuchsiaResourceDialect>
pub fn read_characteristic( &self, handle: &Handle, options: &ReadOptions, ) -> QueryResponseFut<RemoteServiceReadCharacteristicResult, DefaultFuchsiaResourceDialect>
Reads the value of a characteristic with the given handle
.
- request
handle
The characteristic handle to read. - request
options
Options that apply to the read.
- response
value
The value of the characteristic.
- error Returns
INVALID_HANDLE
ifhandle
is invalid. - error Returns
INVALID_PARAMETERS
ifoptions
is invalid. - error Returns
READ_NOT_PERMITTED
orINSUFFICIENT_*
if the server rejects the read request. - error Returns
FAILURE
if the server returns an error.
Sourcepub fn write_characteristic(
&self,
handle: &Handle,
value: &[u8],
options: &WriteOptions,
) -> QueryResponseFut<RemoteServiceWriteCharacteristicResult, DefaultFuchsiaResourceDialect>
pub fn write_characteristic( &self, handle: &Handle, value: &[u8], options: &WriteOptions, ) -> QueryResponseFut<RemoteServiceWriteCharacteristicResult, DefaultFuchsiaResourceDialect>
Writes value
to the characteristic with handle
using the provided
options
.
It is not recommended to send additional writes while a write is already in progress (the server may receive simultaneous writes in any order).
- request
handle
The characteristic to be written to. - request
value
The value to be written. - request
options
Options that apply to the write.
- response An empty response will be sent when a success response is
received from the server (or immediately if
options.with_response
is false)
- error Returns
INVALID_HANDLE
ifhandle
is invalid. - error Returns
INVALID_PARAMETERS
ifoptions
is invalid. - error Returns
WRITE_NOT_PERMITTED
orINSUFFICIENT_*
if the server rejects the write request with a reason. - error Returns
FAILURE
if the server returns an error.
Sourcepub fn read_descriptor(
&self,
handle: &Handle,
options: &ReadOptions,
) -> QueryResponseFut<RemoteServiceReadDescriptorResult, DefaultFuchsiaResourceDialect>
pub fn read_descriptor( &self, handle: &Handle, options: &ReadOptions, ) -> QueryResponseFut<RemoteServiceReadDescriptorResult, DefaultFuchsiaResourceDialect>
Reads the value of the characteristic descriptor with handle
and
returns it in the reply.
- request
handle
The descriptor handle to read. - request
options
Options that apply to the read.
- response
value
The value of the descriptor.
- error Returns
INVALID_HANDLE
ifhandle
is invalid. - error Returns
INVALID_PARAMETERS
ifoptions
is invalid. - error Returns
READ_NOT_PERMITTED
orINSUFFICIENT_*
if the server rejects the read request. - error Returns
FAILURE
if the server returns an error.
Sourcepub fn write_descriptor(
&self,
handle: &Handle,
value: &[u8],
options: &WriteOptions,
) -> QueryResponseFut<RemoteServiceWriteDescriptorResult, DefaultFuchsiaResourceDialect>
pub fn write_descriptor( &self, handle: &Handle, value: &[u8], options: &WriteOptions, ) -> QueryResponseFut<RemoteServiceWriteDescriptorResult, DefaultFuchsiaResourceDialect>
Writes value
to the characteristic descriptor with handle
.
It is not recommended to send additional writes while a write is already
in progress (the server may receive simultaneous writes in any order).
- request
handle
The descriptor handle to written to. - request
value
The value to be written. - request
options
Options that apply to the write.
- response An empty response will be sent when a success response is
received from the server (or immediately if
options.with_response
is false)
- error Returns
INVALID_HANDLE
ifhandle
is invalid or refers to an internally reserved descriptor type (e.g. the Client Characteristic Configuration descriptor). - error Returns
INVALID_PARAMETERS
ifoptions
is invalid. - error Returns
WRITE_NOT_PERMITTED
orINSUFFICIENT_*
if the server rejects the write with a reason. - error Returns
FAILURE
if the server returns an error.
Sourcepub fn register_characteristic_notifier(
&self,
handle: &Handle,
notifier: ClientEnd<CharacteristicNotifierMarker>,
) -> QueryResponseFut<RemoteServiceRegisterCharacteristicNotifierResult, DefaultFuchsiaResourceDialect>
pub fn register_characteristic_notifier( &self, handle: &Handle, notifier: ClientEnd<CharacteristicNotifierMarker>, ) -> QueryResponseFut<RemoteServiceRegisterCharacteristicNotifierResult, DefaultFuchsiaResourceDialect>
Subscribe to notifications & indications from the characteristic with
the given handle
.
Either notifications or indications will be enabled depending on characteristic properties. Indications will be preferred if they are supported. This operation fails if the characteristic does not have the “notify” or “indicate” property.
A write request will be issued to configure the characteristic for notifications/indications if it contains a Client Characteristic Configuration descriptor. This method fails if an error occurs while writing to the descriptor.
On success, the notifier
protocol can be used to be notified when
the peer sends a notification or indication. Indications are
automatically confirmed. When the protocol is dropped, the subscription
may end if no other local client is receiving notifications.
- request
handle
the characteristic handle. - request
notifier
the protocol used for notifications.
- response An empty response will be sent immediately if registration succeeds.
- error Returns a
FAILURE
if the characteristic does not support notifications or indications. - error Returns a
INVALID_HANDLE
ifhandle
is invalid. - error Returns a
WRITE_NOT_PERMITTED
orINSUFFICIENT_*
for a descriptor write error.
Trait Implementations§
Source§impl Clone for RemoteServiceProxy
impl Clone for RemoteServiceProxy
Source§fn clone(&self) -> RemoteServiceProxy
fn clone(&self) -> RemoteServiceProxy
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for RemoteServiceProxy
impl Debug for RemoteServiceProxy
Source§impl Proxy for RemoteServiceProxy
impl Proxy for RemoteServiceProxy
Source§type Protocol = RemoteServiceMarker
type Protocol = RemoteServiceMarker
Proxy
controls.Source§fn from_channel(inner: AsyncChannel) -> Self
fn from_channel(inner: AsyncChannel) -> Self
Source§fn into_channel(self) -> Result<AsyncChannel, Self>
fn into_channel(self) -> Result<AsyncChannel, Self>
Source§fn as_channel(&self) -> &AsyncChannel
fn as_channel(&self) -> &AsyncChannel
§fn into_client_end(self) -> Result<ClientEnd<Self::Protocol>, Self>
fn into_client_end(self) -> Result<ClientEnd<Self::Protocol>, Self>
Source§impl RemoteServiceProxyInterface for RemoteServiceProxy
impl RemoteServiceProxyInterface for RemoteServiceProxy
type DiscoverCharacteristicsResponseFut = QueryResponseFut<Vec<Characteristic>>
type ReadByTypeResponseFut = QueryResponseFut<Result<Vec<ReadByTypeResult>, Error>>
type ReadCharacteristicResponseFut = QueryResponseFut<Result<ReadValue, Error>>
type WriteCharacteristicResponseFut = QueryResponseFut<Result<(), Error>>
type ReadDescriptorResponseFut = QueryResponseFut<Result<ReadValue, Error>>
type WriteDescriptorResponseFut = QueryResponseFut<Result<(), Error>>
type RegisterCharacteristicNotifierResponseFut = QueryResponseFut<Result<(), Error>>
fn discover_characteristics(&self) -> Self::DiscoverCharacteristicsResponseFut
fn read_by_type(&self, uuid: &Uuid) -> Self::ReadByTypeResponseFut
fn read_characteristic( &self, handle: &Handle, options: &ReadOptions, ) -> Self::ReadCharacteristicResponseFut
fn write_characteristic( &self, handle: &Handle, value: &[u8], options: &WriteOptions, ) -> Self::WriteCharacteristicResponseFut
fn read_descriptor( &self, handle: &Handle, options: &ReadOptions, ) -> Self::ReadDescriptorResponseFut
fn write_descriptor( &self, handle: &Handle, value: &[u8], options: &WriteOptions, ) -> Self::WriteDescriptorResponseFut
fn register_characteristic_notifier( &self, handle: &Handle, notifier: ClientEnd<CharacteristicNotifierMarker>, ) -> Self::RegisterCharacteristicNotifierResponseFut
Auto Trait Implementations§
impl Freeze for RemoteServiceProxy
impl !RefUnwindSafe for RemoteServiceProxy
impl Send for RemoteServiceProxy
impl Sync for RemoteServiceProxy
impl Unpin for RemoteServiceProxy
impl !UnwindSafe for RemoteServiceProxy
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)