diff options
author | fokinv <fokinv@inf.u-szeged.hu> | 2016-04-25 13:54:06 +0200 |
---|---|---|
committer | Attila Dusnoki <dati91@gmail.com> | 2016-05-03 11:35:34 +0200 |
commit | c8672ed0afafe36632f9c8ddd44b0b540fdc2a9f (patch) | |
tree | 1671ba7467199b97ae6f6f5442bd42d7da954532 /components/script/dom/bluetooth.rs | |
parent | ecf4c942da979729748bbf58b471b2d0d6a95ffe (diff) | |
download | servo-c8672ed0afafe36632f9c8ddd44b0b540fdc2a9f.tar.gz servo-c8672ed0afafe36632f9c8ddd44b0b540fdc2a9f.zip |
Refactor IPC-message sending
Diffstat (limited to 'components/script/dom/bluetooth.rs')
-rw-r--r-- | components/script/dom/bluetooth.rs | 73 |
1 files changed, 27 insertions, 46 deletions
diff --git a/components/script/dom/bluetooth.rs b/components/script/dom/bluetooth.rs index 46602b4bbf3..1e1ae3b147d 100644 --- a/components/script/dom/bluetooth.rs +++ b/components/script/dom/bluetooth.rs @@ -18,7 +18,7 @@ use dom::bluetoothuuid::BluetoothUUID; use ipc_channel::ipc::{self, IpcSender}; use net_traits::bluetooth_scanfilter::{BluetoothScanfilter, BluetoothScanfilterSequence}; use net_traits::bluetooth_scanfilter::{RequestDeviceoptions, ServiceUUIDSequence}; -use net_traits::bluetooth_thread::{BluetoothMethodMsg, BluetoothObjectMsg}; +use net_traits::bluetooth_thread::BluetoothMethodMsg; use util::str::DOMString; const FILTER_EMPTY_ERROR: &'static str = "'filters' member must be non - empty to find any devices."; @@ -133,51 +133,32 @@ impl BluetoothMethods for Bluetooth { // https://webbluetoothcg.github.io/web-bluetooth/#dom-bluetooth-requestdevice fn RequestDevice(&self, option: &RequestDeviceOptions) -> Fallible<Root<BluetoothDevice>> { let (sender, receiver) = ipc::channel().unwrap(); - match try!(convert_request_device_options(option, self.global().r())) { - option => { - self.get_bluetooth_thread().send( - BluetoothMethodMsg::RequestDevice(option, sender)).unwrap(); - let device = receiver.recv().unwrap(); - match device { - BluetoothObjectMsg::BluetoothDevice { - id, - name, - device_class, - vendor_id_source, - vendor_id, - product_id, - product_version, - appearance, - tx_power, - rssi, - } => { - let ad_data = &BluetoothAdvertisingData::new(self.global().r(), - appearance, - tx_power, - rssi); - let vendor_id_source = vendor_id_source.map(|vid| match vid.as_str() { - "bluetooth" => VendorIDSource::Bluetooth, - "usb" => VendorIDSource::Usb, - _ => VendorIDSource::Unknown, - }); - let name = name.map(DOMString::from); - Ok(BluetoothDevice::new(self.global().r(), - DOMString::from(id), - name, - ad_data, - device_class, - vendor_id_source, - vendor_id, - product_id, - product_version)) - }, - BluetoothObjectMsg::Error { - error - } => { - Err(Type(error)) - }, - _ => unreachable!() - } + let option = try!(convert_request_device_options(option, self.global().r())); + self.get_bluetooth_thread().send(BluetoothMethodMsg::RequestDevice(option, sender)).unwrap(); + let device = receiver.recv().unwrap(); + match device { + Ok(device) => { + let ad_data = BluetoothAdvertisingData::new(self.global().r(), + device.appearance, + device.tx_power, + device.rssi); + let vendor_id_source = device.vendor_id_source.map(|vid| match vid.as_str() { + "bluetooth" => VendorIDSource::Bluetooth, + "usb" => VendorIDSource::Usb, + _ => VendorIDSource::Unknown, + }); + Ok(BluetoothDevice::new(self.global().r(), + DOMString::from(device.id), + device.name.map(DOMString::from), + &ad_data, + device.device_class, + vendor_id_source, + device.vendor_id, + device.product_id, + device.product_version)) + }, + Err(error) => { + Err(Type(error)) }, } } |