pub struct ProfileProxy { /* private fields */ }
Implementations§
source§impl ProfileProxy
impl ProfileProxy
sourcepub fn new(channel: AsyncChannel) -> Self
pub fn new(channel: AsyncChannel) -> Self
Create a new Proxy for fuchsia.bluetooth.bredr/Profile.
sourcepub fn take_event_stream(&self) -> ProfileEventStream
pub fn take_event_stream(&self) -> ProfileEventStream
Get a Stream of events from the remote end of the protocol.
§Panics
Panics if the event stream was already taken.
sourcepub fn advertise(
&self,
payload: ProfileAdvertiseRequest,
) -> QueryResponseFut<ProfileAdvertiseResult>
pub fn advertise( &self, payload: ProfileAdvertiseRequest, ) -> QueryResponseFut<ProfileAdvertiseResult>
Register a set of services.
These services will be discoverable via Service Discovery Protocol server.
All services advertising the same channel must be added at once - if services are already
registered on any channel advertised, registration will fail, the receiver will be closed
with ZX_ERR_ALREADY_BOUND and an error will be returned.
The ConnectionReceiver will get calls for connections to the channels included in the
protocol_descriptor
or alternative_protocol_descriptors
in the services advertised.
The receiver will be closed if there are any errors advertising.
The ConnectionReceiver::OnRevoke
event can be used to synchronize revoking the
advertisement, if necessary. Closing the ConnectionReceiver
protocol will also stop
advertising these services.
If the advertisement cannot be made for any reason, an error of INVALID_ARGUMENTS
will be returned and the receiver will be closed with a suitable epitaph.
Returns the set of services that are registered via the Service Discovery Protocol
server. The returned services may differ from the input services
if any L2CAP protocol
descriptors request PSM_DYNAMIC
. In this case, the Profile
server shall assign a valid
PSM and include this value in the returned services.
sourcepub fn search(&self, payload: ProfileSearchRequest) -> Result<(), Error>
pub fn search(&self, payload: ProfileSearchRequest) -> Result<(), Error>
Register a search for services on newly connected peers. The SearchResults protocol will be
used to report results for this search.
Only one of service_uuid
or full_uuid
must be present. Any service result with a service
matching the specified UUID will be returned with the additional attributes in attr_ids
.
If both service_uuid
and full_uuid
are present, then ZX_ERR_INVALID_ARGS
will be
returned.
If attr_ids
is empty or omitted, all attributes will be requested. The additional
attribute BLUETOOTH_PROTOCOL_DESCRIPTOR_LIST is always requested. See the Bluetooth
Spec v5.2, Vol 3, Part B, Section 5) and relevant profile specification documents.
sourcepub fn connect(
&self,
peer_id: &PeerId,
connection: &ConnectParameters,
) -> QueryResponseFut<ProfileConnectResult>
pub fn connect( &self, peer_id: &PeerId, connection: &ConnectParameters, ) -> QueryResponseFut<ProfileConnectResult>
Connect an L2CAP or RFCOMM channel to the connected peer identified by peer_id
using the
desired connection
parameters listed. Dynamic PSMs can be specified in connection
.
Returns the channel connected once established, or an error code if the channel could not be connected.
sourcepub fn connect_sco(
&self,
payload: ProfileConnectScoRequest,
) -> Result<(), Error>
pub fn connect_sco( &self, payload: ProfileConnectScoRequest, ) -> Result<(), Error>
Attempt to establish a synchronous connection to peer_id
configured
using params
.
If initiator
is true, a connection request will be sent. Only 1
parameter may be specified.
If initiator
is false, the host will attempt to accept the next
connection request using the parameters given in order. The parameters
will be tried in order until either a connection is successful, all
parameters have been rejected (ScoErrorCode.PARAMETERS_REJECTED
), or
the procedure is canceled.
The result of the connection attempt and the parameters used for the
connection will be returned with connection
. Dropping connection
will
cancel the request.
Trait Implementations§
source§impl Clone for ProfileProxy
impl Clone for ProfileProxy
source§fn clone(&self) -> ProfileProxy
fn clone(&self) -> ProfileProxy
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for ProfileProxy
impl Debug for ProfileProxy
source§impl ProfileProxyInterface for ProfileProxy
impl ProfileProxyInterface for ProfileProxy
type AdvertiseResponseFut = QueryResponseFut<Result<ProfileAdvertiseResponse, ErrorCode>>
fn advertise( &self, payload: ProfileAdvertiseRequest, ) -> Self::AdvertiseResponseFut
fn search(&self, payload: ProfileSearchRequest) -> Result<(), Error>
type ConnectResponseFut = QueryResponseFut<Result<Channel, ErrorCode>>
fn connect( &self, peer_id: &PeerId, connection: &ConnectParameters, ) -> Self::ConnectResponseFut
fn connect_sco(&self, payload: ProfileConnectScoRequest) -> Result<(), Error>
source§impl Proxy for ProfileProxy
impl Proxy for ProfileProxy
§type Protocol = ProfileMarker
type Protocol = ProfileMarker
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 ProfileProxy
impl !RefUnwindSafe for ProfileProxy
impl Send for ProfileProxy
impl Sync for ProfileProxy
impl Unpin for ProfileProxy
impl !UnwindSafe for ProfileProxy
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§default unsafe fn clone_to_uninit(&self, dst: *mut T)
default unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)