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
Trait Implementations§
Source§impl Debug for ProfileServerFacade
impl Debug for ProfileServerFacade
Source§impl Facade for ProfileServerFacade
impl Facade for ProfileServerFacade
Source§fn handle_request<'life0, 'async_trait>(
&'life0 self,
method: String,
args: Value,
) -> Pin<Box<dyn Future<Output = Result<Value, Error>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn handle_request<'life0, 'async_trait>(
&'life0 self,
method: String,
args: Value,
) -> Pin<Box<dyn Future<Output = Result<Value, Error>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Auto Trait Implementations§
impl !Freeze for ProfileServerFacade
impl !RefUnwindSafe for ProfileServerFacade
impl Send for ProfileServerFacade
impl Sync for ProfileServerFacade
impl Unpin for ProfileServerFacade
impl UnsafeUnpin for ProfileServerFacade
impl !UnwindSafe for ProfileServerFacade
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, D> Encode<Ambiguous1, D> for Twhere
D: ResourceDialect,
impl<T, D> Encode<Ambiguous1, D> for Twhere
D: ResourceDialect,
Source§impl<T, D> Encode<Ambiguous2, D> for Twhere
D: ResourceDialect,
impl<T, D> Encode<Ambiguous2, D> for Twhere
D: ResourceDialect,
§impl<T> InstanceFromServiceTransport<T> for T
impl<T> InstanceFromServiceTransport<T> for T
§fn from_service_transport(handle: T) -> T
fn from_service_transport(handle: T) -> T
T to [Self]§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
§impl<T> IntoAny for T
impl<T> IntoAny for T
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more