pub struct HostSynchronousProxy { /* private fields */ }
Implementations§
Source§impl HostSynchronousProxy
impl HostSynchronousProxy
pub fn new(channel: Channel) -> Self
pub fn into_channel(self) -> Channel
Sourcepub fn wait_for_event(
&self,
deadline: MonotonicInstant,
) -> Result<HostEvent, Error>
pub fn wait_for_event( &self, deadline: MonotonicInstant, ) -> Result<HostEvent, Error>
Waits until an event arrives and returns it. It is safe for other threads to make concurrent requests while waiting for an event.
Sourcepub fn request_protocol(&self, payload: ProtocolRequest) -> Result<(), Error>
pub fn request_protocol(&self, payload: ProtocolRequest) -> Result<(), Error>
Fulfills a given protocol request. bt-host will start processing FIDL messages. If the request cannot be fulfilled, the bt-host device will close its end of the given channel.
Sourcepub fn shutdown(&self) -> Result<(), Error>
pub fn shutdown(&self) -> Result<(), Error>
Shuts down the host, ending all active Bluetooth procedures:
- All FIDL interface handles associated with this host are closed and all connections initiated via FIDL clients are severed.
- All scan, discovery, and advertising procedures are stopped.
- Bonded devices are cleared and removed from the auto-connect lists.
- Auto-connected peripherals are disconnected.
This effectively resets the host to its initial state and the host remains available for future requests.
The Host will continue to send OnDeviceUpdated events as procedures get terminated.
The Host protocol will close when shutdown is complete.
Sourcepub fn watch_state(
&self,
___deadline: MonotonicInstant,
) -> Result<HostInfo, Error>
pub fn watch_state( &self, ___deadline: MonotonicInstant, ) -> Result<HostInfo, Error>
Returns information about the Bluetooth host subsystem and controller managed by this Host instance. If there has been no change to the state since the last call to this method, the response will be deferred until there is a change.
The returned info
structure will be populated with the current state of the bt-host
device. However the active
parameter will never be populated. This field is managed
by a higher layer.
Sourcepub fn set_local_data(&self, payload: &HostData) -> Result<(), Error>
pub fn set_local_data(&self, payload: &HostData) -> Result<(), Error>
Assigns local data to this host.
Sourcepub fn set_peer_watcher(
&self,
peer_watcher: ServerEnd<PeerWatcherMarker>,
) -> Result<(), Error>
pub fn set_peer_watcher( &self, peer_watcher: ServerEnd<PeerWatcherMarker>, ) -> Result<(), Error>
Sets a PeerWatcher protocol that will be notified of changes to peers. Only 1 PeerWatcher can be configured at a time.
Sourcepub fn set_local_name(
&self,
local_name: &str,
___deadline: MonotonicInstant,
) -> Result<HostSetLocalNameResult, Error>
pub fn set_local_name( &self, local_name: &str, ___deadline: MonotonicInstant, ) -> Result<HostSetLocalNameResult, Error>
Sets the local name for this host device.
Sourcepub fn set_device_class(
&self,
device_class: &DeviceClass,
___deadline: MonotonicInstant,
) -> Result<HostSetDeviceClassResult, Error>
pub fn set_device_class( &self, device_class: &DeviceClass, ___deadline: MonotonicInstant, ) -> Result<HostSetDeviceClassResult, Error>
Sets the device class for this host device.
Sourcepub fn start_discovery(
&self,
payload: HostStartDiscoveryRequest,
) -> Result<(), Error>
pub fn start_discovery( &self, payload: HostStartDiscoveryRequest, ) -> Result<(), Error>
Initiates a general discovery procedure for BR/EDR and LE devices. On success, discovered
peers can be monitored using the [fuchsia.bluetooth.host/Host.WatchPeers
] method. On Error,
an epitaph will be returned from token
. If the device does not support BR/EDR, only LE
discovery will be performed.
On the LE transport, only general-discoverable and connectable peripherals will be reported.
Discovery will continue until all discovery sessions are closed.
- request
token
The DiscoverySession protocol that must be held open as long as discovery should be enabled. Closing it will stop discovery if no other sessions are open.
Sourcepub fn set_connectable(
&self,
enabled: bool,
___deadline: MonotonicInstant,
) -> Result<HostSetConnectableResult, Error>
pub fn set_connectable( &self, enabled: bool, ___deadline: MonotonicInstant, ) -> Result<HostSetConnectableResult, Error>
Sets whether this host should be connectable.
Sourcepub fn set_discoverable(
&self,
enabled: bool,
___deadline: MonotonicInstant,
) -> Result<HostSetDiscoverableResult, Error>
pub fn set_discoverable( &self, enabled: bool, ___deadline: MonotonicInstant, ) -> Result<HostSetDiscoverableResult, Error>
Sets whether this host should be discoverable.
Sourcepub fn connect(
&self,
id: &PeerId,
___deadline: MonotonicInstant,
) -> Result<HostConnectResult, Error>
pub fn connect( &self, id: &PeerId, ___deadline: MonotonicInstant, ) -> Result<HostConnectResult, Error>
Establish a BR/EDR and/or LE connection to the peer with identifier id
:
-
If the peer is known to support the BR/EDR transport then a logical link over that transport will be established to the device. If the connection attempt is successful, local services registered using “RequestProfile()” will be available to the peer. Traditional services discovered on the peer will be notified to local services asynchronously.
-
If the peer is known to support the LE transport then a logical link over that transport will be established to the device. If the connection attempt is successful, GATT services in the local database (populated via RequestGattServer()) will become available to the peer. Similarly, remote GATT services that are discovered on the peer will become available to holders of a gatt.Client capability and to device drivers that can bind to the bt-gatt-svc class of devices.
The result of the procedure will be communicated via status
. If the remote device
supports both BR/EDR and LE transports and a link cannot be established over both, then an
error Status will be returned and neither transport will be connected.
Sourcepub fn disconnect(
&self,
id: &PeerId,
___deadline: MonotonicInstant,
) -> Result<HostDisconnectResult, Error>
pub fn disconnect( &self, id: &PeerId, ___deadline: MonotonicInstant, ) -> Result<HostDisconnectResult, Error>
Terminate all connections (BR/EDR or LE) to the remote peer with identifier id
.
- request
id
The identifier of the peer to disconnect.
- response
status
Contains an error if either LE or BR/EDR transport fails to disconnect. Contains success when both transports are successfully disconnected or if the peer is already disconnected.
Sourcepub fn pair(
&self,
id: &PeerId,
options: &PairingOptions,
___deadline: MonotonicInstant,
) -> Result<HostPairResult, Error>
pub fn pair( &self, id: &PeerId, options: &PairingOptions, ___deadline: MonotonicInstant, ) -> Result<HostPairResult, Error>
Initiates pairing to the peer with the supplied id
and options
. Returns an error if no
connected peer with id
is found or the pairing procedure fails.
If options
specifies a higher security level than the current pairing, this method
attempts to raise the security level. Otherwise this method has no effect and returns
success.
NOTE: This is intended to satisfy test scenarios that require pairing procedures to be initiated without relying on service access. In normal operation, Bluetooth security is enforced during service access.
Sourcepub fn forget(
&self,
id: &PeerId,
___deadline: MonotonicInstant,
) -> Result<HostForgetResult, Error>
pub fn forget( &self, id: &PeerId, ___deadline: MonotonicInstant, ) -> Result<HostForgetResult, Error>
Deletes a peer from the Bluetooth host. If the peer is connected, it will be disconnected.
device_id
will no longer refer to any peer, even if a device with the same address is
discovered again.
Returns success after no peer exists that’s identified by device_id
(even if it didn’t
exist before Forget), failure if the peer specified by device_id
could not be
disconnected or deleted and still exists.
Sourcepub fn enable_background_scan(&self, enabled: bool) -> Result<(), Error>
pub fn enable_background_scan(&self, enabled: bool) -> Result<(), Error>
Enable or disable a passive LE background scan. When enabled, the bt-host device will continuously perform a passive LE scan in the background when no device discovery sessions are active and accept connection requests from bonded peripherals.
Sourcepub fn enable_privacy(&self, enabled: bool) -> Result<(), Error>
pub fn enable_privacy(&self, enabled: bool) -> Result<(), Error>
Enable or disable the LE privacy feature. When enabled, the bt-host device will use a private device address in all LE procedures. When disabled, the public identity address will be used instead (which is the default).
Sourcepub fn set_br_edr_security_mode(
&self,
bredr_security_mode: BrEdrSecurityMode,
) -> Result<(), Error>
pub fn set_br_edr_security_mode( &self, bredr_security_mode: BrEdrSecurityMode, ) -> Result<(), Error>
Set the GAP BR/EDR Security Mode of the host. bt-host only supports encrypted, connection-based security modes, i.e. Mode 4 and Secure Connections Only mode. If the security mode is set to Secure Connections Only, any existing encrypted connections which do not meet the security requirements of Secure Connections Only mode will be disconnected.
Sourcepub fn set_le_security_mode(
&self,
le_security_mode: LeSecurityMode,
) -> Result<(), Error>
pub fn set_le_security_mode( &self, le_security_mode: LeSecurityMode, ) -> Result<(), Error>
Set the GAP LE Security Mode of the host. bt-host only supports encrypted, connection-based security modes, i.e. Mode 1 and Secure Connections Only mode. If the security mode is set to Secure Connections Only, any existing encrypted connections which do not meet the security requirements of Secure Connections Only mode will be disconnected.
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>
Assigns the pairing delegate that will respond to authentication challenges using the given I/O capabilities. Calling this method cancels any on-going pairing procedure started using a previous delegate. Pairing requests will be rejected if no PairingDelegate has been assigned.
Sourcepub fn set_bonding_delegate(
&self,
delegate: ServerEnd<BondingDelegateMarker>,
) -> Result<(), Error>
pub fn set_bonding_delegate( &self, delegate: ServerEnd<BondingDelegateMarker>, ) -> Result<(), Error>
Set a BondingDelegate protocol that will be notified of new and removed bonds that need to
be persisted. If a delegate is already set, the new delegate
will be closed with
ALREADY_BOUND
Trait Implementations§
Source§impl Debug for HostSynchronousProxy
impl Debug for HostSynchronousProxy
Source§impl SynchronousProxy for HostSynchronousProxy
impl SynchronousProxy for HostSynchronousProxy
Source§type Protocol = HostMarker
type Protocol = HostMarker
Proxy
controls.