template <>
class WireServer
Defined at line 4333 of file fidling/gen/sdk/fidl/fuchsia.bluetooth.bredr/fuchsia.bluetooth.bredr/cpp/fidl/fuchsia.bluetooth.bredr/cpp/wire_messaging.h
Pure-virtual interface to be implemented by a server.
This interface uses typed channels (i.e. |::fidl::ClientEnd
<
::fuchsia_bluetooth_bredr::Profile>|
and |::fidl::ServerEnd
<
::fuchsia_bluetooth_bredr::Profile>|).
Public Methods
void Advertise (::fuchsia_bluetooth_bredr::wire::ProfileAdvertiseRequest * request, AdvertiseCompleter::Sync & completer)
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.
void Search (::fuchsia_bluetooth_bredr::wire::ProfileSearchRequest * request, SearchCompleter::Sync & completer)
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.
void Connect (::fuchsia_bluetooth_bredr::wire::ProfileConnectRequest * request, ConnectCompleter::Sync & completer)
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.
void ConnectSco (::fuchsia_bluetooth_bredr::wire::ProfileConnectScoRequest * request, ConnectScoCompleter::Sync & completer)
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.
void WireServer ()
Defined at line 4336 of file fidling/gen/sdk/fidl/fuchsia.bluetooth.bredr/fuchsia.bluetooth.bredr/cpp/fidl/fuchsia.bluetooth.bredr/cpp/wire_messaging.h
Handler bind_handler (async_dispatcher_t * dispatcher)
|bind_handler| returns a handler that binds incoming connections to this
server implementation.
The returned handler borrows the server instance.
The server must outlive the provided |dispatcher|. Only after
the dispatcher is shutdown will it be safe to destroy the servers.
The server should not be moved.
void ~WireServer ()
Defined at line 4337 of file fidling/gen/sdk/fidl/fuchsia.bluetooth.bredr/fuchsia.bluetooth.bredr/cpp/fidl/fuchsia.bluetooth.bredr/cpp/wire_messaging.h