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