pub struct ProfileServerFacade { /* private fields */ }
Expand description
Perform Profile Server operations.
Note this object is shared among all threads created by the server.
Implementations§
Source§impl ProfileServerFacade
impl ProfileServerFacade
pub fn new() -> ProfileServerFacade
Sourcepub fn create_profile_server_proxy(&self) -> Result<ProfileProxy, Error>
pub fn create_profile_server_proxy(&self) -> Result<ProfileProxy, Error>
Creates a Profile Server Proxy.
Sourcepub async fn init_profile_server_proxy(&self) -> Result<(), Error>
pub async fn init_profile_server_proxy(&self) -> Result<(), Error>
Initialize the ProfileServer proxy.
Sourcepub fn generate_service_class_uuids(
&self,
uuid_list: &Vec<Value>,
) -> Result<Vec<Uuid>, Error>
pub fn generate_service_class_uuids( &self, uuid_list: &Vec<Value>, ) -> Result<Vec<Uuid>, Error>
Returns a list of String UUIDs from a Serde JSON list of Values.
§Arguments
uuid_list
- A serde json list of Values to parse. Example input: ‘uuid_list’: [“00000001-0000-1000-8000-00805F9B34FB”]
Sourcepub fn generate_protocol_descriptors(
&self,
protocol_descriptors: &Vec<Value>,
) -> Result<Vec<ProtocolDescriptor>, Error>
pub fn generate_protocol_descriptors( &self, protocol_descriptors: &Vec<Value>, ) -> Result<Vec<ProtocolDescriptor>, Error>
Returns a list of ProtocolDescriptors from a Serde JSON input.
Defined Protocol Identifiers for the Protocol Descriptor We intentionally omit deprecated profile identifiers. From Bluetooth Assigned Numbers: https://www.bluetooth.com/specifications/assigned-numbers/service-discovery
§Arguments
protocol_descriptors
: A Json Representation of the ProtocolDescriptors to set up. Example: ‘protocol_descriptors’: [ { ‘protocol’: 25, # u64 Representation of ProtocolIdentifier::AVDTP ‘params’: [ { ‘data’: 0x0103 # to indicate 1.3 }, { ‘data’: 0x0105 # to indicate 1.5 } ] }, { ‘protocol’: 1, # u64 Representation of ProtocolIdentifier::SDP ‘params’: [{ ‘data’: 0x0019 }] } ]
Sourcepub fn generate_profile_descriptors(
&self,
profile_descriptors: &Vec<Value>,
) -> Result<Vec<ProfileDescriptor>, Error>
pub fn generate_profile_descriptors( &self, profile_descriptors: &Vec<Value>, ) -> Result<Vec<ProfileDescriptor>, Error>
Returns a list of ProfileDescriptors from a Serde JSON input.
Identifiers that are valid for Bluetooth Classes / Profiles We intentionally omit classes and profile IDs that are unsupported, deprecated, or reserved for use by Fuchsia Bluetooth. From Bluetooth Assigned Numbers for SDP https://www.bluetooth.com/specifications/assigned-numbers/service-discovery
§Arguments
profile_descriptors
: A Json Representation of the ProtocolDescriptors. Example: ‘profile_descriptors’: [{ ‘profile_id’: 0x110D, # Represents ServiceClassProfileIdentifier::AdvancedAudioDistribution ‘major_version’: 1, # u64 representation of the major_version. ‘minor_version’: 3, # u64 representation of the minor_version. }],
Sourcepub fn generate_information(
&self,
information_list: &Vec<Value>,
) -> Result<Vec<Information>, Error>
pub fn generate_information( &self, information_list: &Vec<Value>, ) -> Result<Vec<Information>, Error>
Returns a list of Information objects from a Serde JSON input.
§Arguments
information_list
: A Json Representation of the Information objects. Example: ‘information_list’: [{ ‘language’: “en”, ‘name’: “A2DP”, ‘description’: “Advanced Audio Distribution Profile”, ‘provider’: “Fuchsia” }],
Sourcepub fn generate_additional_attributes(
&self,
additional_attributes_list: &Vec<Value>,
) -> Result<Vec<Attribute>, Error>
pub fn generate_additional_attributes( &self, additional_attributes_list: &Vec<Value>, ) -> Result<Vec<Attribute>, Error>
Returns a list of Attributes from a Serde JSON input.
§Arguments
additional_attributes_list
: A Json Representation of the Attribute objects. Example: ‘additional_attributes’: [{ ‘id’: 201, ‘element’: { ‘data’: int(sig_uuid_constants[‘AVDTP’], 16) } }]
Sourcepub async fn monitor_connection_receiver(
requests: ConnectionReceiverRequestStream,
end_signal: Receiver<()>,
) -> Result<(), Error>
pub async fn monitor_connection_receiver( requests: ConnectionReceiverRequestStream, end_signal: Receiver<()>, ) -> Result<(), Error>
Monitor the connection request stream, printing outputs when connections happen.
Sourcepub async fn monitor_search_results(
requests: SearchResultsRequestStream,
) -> Result<(), Error>
pub async fn monitor_search_results( requests: SearchResultsRequestStream, ) -> Result<(), Error>
Monitor the search results stream, printing logs when results are produced.
Sourcepub async fn add_service(&self, args: Value) -> Result<usize, Error>
pub async fn add_service(&self, args: Value) -> Result<usize, Error>
Adds a service record based on a JSON dictrionary.
§Arguments:
args
: A Json object representing the service to add: Example Python dictionary pre JSON conversion args: { ‘service_class_uuids’: [“0001”], ‘protocol_descriptors’: [ { ‘protocol’: int(sig_uuid_constants[‘AVDTP’], 16), ‘params’: [ { ‘data’: 0x0103 } ] }, { ‘protocol’: int(sig_uuid_constants[‘SDP’], 16), ‘params’: [{ ‘data’: int(sig_uuid_constants[‘AVDTP’], 16), }] } ], ‘profile_descriptors’: [{ ‘profile_id’: int(sig_uuid_constants[‘AdvancedAudioDistribution’], 16), ‘major_version’: 1, ‘minor_version’: 3, }], ‘additional_protocol_descriptors’: [{ ‘protocol’: int(sig_uuid_constants[‘L2CAP’], 16), ‘params’: [{ ‘data’: int(sig_uuid_constants[‘AVDTP’], 16), }] }], ‘information’: [{ ‘language’: “en”, ‘name’: “A2DP”, ‘description’: “Advanced Audio Distribution Profile”, ‘provider’: “Fuchsia” }], ‘additional_attributes’: [{ ‘id’: 201, ‘element’: { ‘data’: int(sig_uuid_constants[‘AVDTP’], 16) } }] }
pub fn get_service_class_profile_identifier_from_id( &self, raw_profile_id: &Value, ) -> Result<ServiceClassProfileIdentifier, Error>
pub async fn add_search(&self, args: Value) -> Result<(), Error>
Sourcepub async fn connect(
&self,
id: String,
psm: u16,
mode: &str,
) -> Result<(), Error>
pub async fn connect( &self, id: String, psm: u16, mode: &str, ) -> Result<(), Error>
Sends an outgoing l2cap connection request
§Arguments:
id
: String - The peer id to connect to.psm
: u16 - The PSM value to connect to: Valid PSM values: https://www.bluetooth.com/specifications/assigned-numbers/logical-link-control/mode
: String - The channel mode to connect over Available Values: BASIC, ERTM