pub struct AccessProxy { /* private fields */ }
Implementations§
Source§impl AccessProxy
impl AccessProxy
Sourcepub fn take_event_stream(&self) -> AccessEventStream
pub fn take_event_stream(&self) -> AccessEventStream
Get a Stream of events from the remote end of the protocol.
§Panics
Panics if the event stream was already taken.
Sourcepub fn set_pairing_delegate(
&self,
input: InputCapability,
output: OutputCapability,
delegate: ClientEnd<PairingDelegateMarker>,
) -> Result<(), Error>
pub fn set_pairing_delegate( &self, input: InputCapability, output: OutputCapability, delegate: ClientEnd<PairingDelegateMarker>, ) -> Result<(), Error>
Assign a PairingDelegate to respond to drive pairing procedures. The delegate will be configured to use the provided I/O capabilities to determine the pairing method.
Only one PairingDelegate can be registered at a time. Closing a PairingDelegate aborts all on-going pairing procedures associated with a delegate and closes the PairingDelegate previously assigned for this Access instance.
- request
input
Bluetooth input capability - request
output
Bluetooth output capability - request
delegate
The client end of a PairingDelegate channel.
§Deprecation - This method is folded into the fuchsia.bluetooth.sys/Pairing protocol. See
https://fxbug.dev/42180744 for more details on the migration.
Sourcepub fn set_local_name(&self, name: &str) -> Result<(), Error>
pub fn set_local_name(&self, name: &str) -> Result<(), Error>
Assign a local name for the Bluetooth system. This name will be visible to nearby peers when the system is in discoverable mode and during name discovery procedures.
- request
name
The complete local name to assign to the system.
Sourcepub fn set_device_class(&self, device_class: &DeviceClass) -> Result<(), Error>
pub fn set_device_class(&self, device_class: &DeviceClass) -> Result<(), Error>
Set the local device class that will be visible to nearby peers when the system is in discoverable mode.
- request
device_class
The device class to assign to the system.
Sourcepub fn make_discoverable(
&self,
token: ServerEnd<ProcedureTokenMarker>,
) -> QueryResponseFut<AccessMakeDiscoverableResult, DefaultFuchsiaResourceDialect>
pub fn make_discoverable( &self, token: ServerEnd<ProcedureTokenMarker>, ) -> QueryResponseFut<AccessMakeDiscoverableResult, DefaultFuchsiaResourceDialect>
Put the system into the “General Discoverable” mode on the BR/EDR transport. The active host will respond to general inquiry (by regularly entering the inquiry scan mode).
- request
token
[fuchsia.bluetooth.sys/ProcedureToken
] that will remain valid while a discoverable mode session is active. NOTE: The system may remain discoverable until all [fuchsia.bluetooth.sys/Access
] clients drop their tokens.
- error Reports Error.FAILED if inquiry mode cannot be entered.
Sourcepub fn start_discovery(
&self,
token: ServerEnd<ProcedureTokenMarker>,
) -> QueryResponseFut<AccessStartDiscoveryResult, DefaultFuchsiaResourceDialect>
pub fn start_discovery( &self, token: ServerEnd<ProcedureTokenMarker>, ) -> QueryResponseFut<AccessStartDiscoveryResult, DefaultFuchsiaResourceDialect>
Start a general discovery procedure. All general discoverable BR/EDR, LE,
and BR/EDR/LE devices will appear in the peer list, which can be observed by calling
[fuchsia.bluetooth.sys/Access.WatchPeers
].
- request
token
[fuchsia.bluetooth.sys/ProcedureToken
] that will remain valid while discovery is in progress. NOTE: The radio will continue performing discovery until all [fuchsia.bluetooth.sys/Access
] drop their tokens.
- error Reports Error.FAILED if discovery on either transport cannot be initiated.
Sourcepub fn watch_peers(
&self,
) -> QueryResponseFut<(Vec<Peer>, Vec<PeerId>), DefaultFuchsiaResourceDialect>
pub fn watch_peers( &self, ) -> QueryResponseFut<(Vec<Peer>, Vec<PeerId>), DefaultFuchsiaResourceDialect>
Returns a list of all peers (connectable Bluetooth devices) known to the system. The first
call results in a snapshot of all known peers to be sent immediately in the updated
return
paremeter. Subsequent calls receive a response only when one or more entries have been
added, modified, or removed from the entries reported since the most recent call.
- response
updated
Peers that were added or updated since the last call to WatchPeers(). - response
removed
Ids of peers that were removed since the last call to WatchPeers().
Sourcepub fn connect(
&self,
id: &PeerId,
) -> QueryResponseFut<AccessConnectResult, DefaultFuchsiaResourceDialect>
pub fn connect( &self, id: &PeerId, ) -> QueryResponseFut<AccessConnectResult, DefaultFuchsiaResourceDialect>
Initiate a connection to the peer with the given id
. This method connects both BR/EDR and
LE transports depending on the technologies that the peer is known to support.
- request
id
The id of the peer to connect.
- error Reports
Error.FAILED
if a connection to the peer cannot be initiated. - error Reports
Error.PEER_NOT_FOUND
ifid
is not recognized.
Sourcepub fn disconnect(
&self,
id: &PeerId,
) -> QueryResponseFut<AccessDisconnectResult, DefaultFuchsiaResourceDialect>
pub fn disconnect( &self, id: &PeerId, ) -> QueryResponseFut<AccessDisconnectResult, DefaultFuchsiaResourceDialect>
Disconnect all logical links to the peer with the given id
. This includes LE and
BR/EDR links that have been initiated using all Access and fuchsia.bluetooth.le protocol
instances.
- request
id
The id of the peer to disconnect.
- error Reports
Error.PEER_NOT_FOUND
ifid
is not recognized.
Sourcepub fn pair(
&self,
id: &PeerId,
options: &PairingOptions,
) -> QueryResponseFut<AccessPairResult, DefaultFuchsiaResourceDialect>
pub fn pair( &self, id: &PeerId, options: &PairingOptions, ) -> QueryResponseFut<AccessPairResult, DefaultFuchsiaResourceDialect>
Initiate a pairing to the remote id
with the given options
.
This call completes only once the pairing procedure has completed or aborted.
Returns an error if no connected peer with id
is found or the pairing procedure fails.
If the named peer is already paired, this returns immediately with a success value - unless
the pairing is over LE and the PairingOptions.le_security_level is more secure than the
current security level, in which case we will attempt to raise security to the requested
level.
Pairing will take place over whichever transport is indicated by options.transport
. If
that transport isn’t currently connected, the pairing will fail with Error.PEER_NOT_FOUND
.
Currently, if DUAL_MODE is requested, we will attempt to pair over the LE transport.
- request
id
The id of the peer to initiate pairing with - request
options
The configuration options to use for this pairing request
- error Reports
Error.PEER_NOT_FOUND
ifid
is not recognized, or the peer is not connected on the requested transport. - error Reports
Error.INVALID_ARGUMENTS
if ill-formed options are passed - error Reports
Error.FAILED
if an error occurs during pairing
Sourcepub fn forget(
&self,
id: &PeerId,
) -> QueryResponseFut<AccessForgetResult, DefaultFuchsiaResourceDialect>
pub fn forget( &self, id: &PeerId, ) -> QueryResponseFut<AccessForgetResult, DefaultFuchsiaResourceDialect>
Removes all bonding information and disconnects any existing links with the peer with the
given id
.
- request
id
The id of the peer to forget.
- error Reports
Error.PEER_NOT_FOUND
ifid
is not recognized.
Trait Implementations§
Source§impl AccessProxyInterface for AccessProxy
impl AccessProxyInterface for AccessProxy
type MakeDiscoverableResponseFut = QueryResponseFut<Result<(), Error>>
type StartDiscoveryResponseFut = QueryResponseFut<Result<(), Error>>
type WatchPeersResponseFut = QueryResponseFut<(Vec<Peer>, Vec<PeerId>)>
type ConnectResponseFut = QueryResponseFut<Result<(), Error>>
type DisconnectResponseFut = QueryResponseFut<Result<(), Error>>
type PairResponseFut = QueryResponseFut<Result<(), Error>>
type ForgetResponseFut = QueryResponseFut<Result<(), Error>>
fn set_pairing_delegate( &self, input: InputCapability, output: OutputCapability, delegate: ClientEnd<PairingDelegateMarker>, ) -> Result<(), Error>
fn set_local_name(&self, name: &str) -> Result<(), Error>
fn set_device_class(&self, device_class: &DeviceClass) -> Result<(), Error>
fn make_discoverable( &self, token: ServerEnd<ProcedureTokenMarker>, ) -> Self::MakeDiscoverableResponseFut
fn start_discovery( &self, token: ServerEnd<ProcedureTokenMarker>, ) -> Self::StartDiscoveryResponseFut
fn watch_peers(&self) -> Self::WatchPeersResponseFut
fn connect(&self, id: &PeerId) -> Self::ConnectResponseFut
fn disconnect(&self, id: &PeerId) -> Self::DisconnectResponseFut
fn pair(&self, id: &PeerId, options: &PairingOptions) -> Self::PairResponseFut
fn forget(&self, id: &PeerId) -> Self::ForgetResponseFut
Source§impl Clone for AccessProxy
impl Clone for AccessProxy
Source§fn clone(&self) -> AccessProxy
fn clone(&self) -> AccessProxy
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for AccessProxy
impl Debug for AccessProxy
Source§impl Proxy for AccessProxy
impl Proxy for AccessProxy
Source§type Protocol = AccessMarker
type Protocol = AccessMarker
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>
Auto Trait Implementations§
impl Freeze for AccessProxy
impl !RefUnwindSafe for AccessProxy
impl Send for AccessProxy
impl Sync for AccessProxy
impl Unpin for AccessProxy
impl !UnwindSafe for AccessProxy
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
)