Index: device/bluetooth/bluetooth_low_energy_device_mac.mm |
diff --git a/device/bluetooth/bluetooth_low_energy_device_mac.mm b/device/bluetooth/bluetooth_low_energy_device_mac.mm |
index 677c59557087bc8be0e1cb5f92a9d631ec910e7b..176b58284c5207560e97d8b6f329ebfe38196183 100644 |
--- a/device/bluetooth/bluetooth_low_energy_device_mac.mm |
+++ b/device/bluetooth/bluetooth_low_energy_device_mac.mm |
@@ -43,6 +43,11 @@ BluetoothLowEnergyDeviceMac::BluetoothLowEnergyDeviceMac( |
} |
BluetoothLowEnergyDeviceMac::~BluetoothLowEnergyDeviceMac() { |
+ if (this->IsGattConnected()) { |
scheib
2016/02/10 18:59:46
if (IsGattConnected())
jlebel
2016/02/10 21:20:07
Done.
|
+ BluetoothAdapterMac* adapter = |
+ static_cast<BluetoothAdapterMac*>(this->adapter_); |
+ adapter->DisconnectGatt(this); |
scheib
2016/02/10 18:59:46
GetMacAdapter()->DisconnectGatt(this);
jlebel
2016/02/10 21:20:07
Done.
|
+ } |
} |
void BluetoothLowEnergyDeviceMac::Update(CBPeripheral* peripheral, |
@@ -127,7 +132,7 @@ bool BluetoothLowEnergyDeviceMac::IsConnectable() const { |
} |
bool BluetoothLowEnergyDeviceMac::IsConnecting() const { |
- return false; |
+ return (GetPeripheralState() == CBPeripheralStateConnecting); |
} |
BluetoothDevice::UUIDList BluetoothLowEnergyDeviceMac::GetUUIDs() const { |
@@ -213,12 +218,6 @@ void BluetoothLowEnergyDeviceMac::ConnectToServiceInsecurely( |
NOTIMPLEMENTED(); |
} |
-void BluetoothLowEnergyDeviceMac::CreateGattConnection( |
- const GattConnectionCallback& callback, |
- const ConnectErrorCallback& error_callback) { |
- NOTIMPLEMENTED(); |
-} |
- |
NSDate* BluetoothLowEnergyDeviceMac::GetLastUpdateTime() const { |
return last_update_time_.get(); |
} |
@@ -228,15 +227,17 @@ std::string BluetoothLowEnergyDeviceMac::GetDeviceName() const { |
} |
void BluetoothLowEnergyDeviceMac::CreateGattConnectionImpl() { |
- // Mac implementation does not yet use the default CreateGattConnection |
- // implementation. http://crbug.com/520774 |
- NOTIMPLEMENTED(); |
+ if (!this->IsGattConnected()) { |
+ BluetoothAdapterMac* adapter = |
+ static_cast<BluetoothAdapterMac*>(this->adapter_); |
+ adapter->CreateGattConnection(this); |
scheib
2016/02/10 18:59:45
GetMacAdapter()->CreateGattConnection(this);
jlebel
2016/02/10 21:20:07
Done.
|
+ } |
} |
void BluetoothLowEnergyDeviceMac::DisconnectGatt() { |
- // Mac implementation does not yet use the default CreateGattConnection |
- // implementation. http://crbug.com/520774 |
- NOTIMPLEMENTED(); |
+ BluetoothAdapterMac* adapter = |
+ static_cast<BluetoothAdapterMac*>(this->adapter_); |
+ adapter->DisconnectGatt(this); |
scheib
2016/02/10 18:59:46
GetMacAdapter()->CreateGattConnection(this);
jlebel
2016/02/10 21:20:07
Done.
|
} |
// static |
@@ -259,6 +260,29 @@ std::string BluetoothLowEnergyDeviceMac::GetPeripheralHashAddress( |
return BluetoothDevice::CanonicalizeAddress(hash); |
} |
+device::BluetoothAdapterMac* |
+BluetoothLowEnergyDeviceMac::GetBluetoothAdapterMac() { |
+ BluetoothAdapterMac* adapter = |
+ static_cast<BluetoothAdapterMac*>(this->adapter_); |
+ return adapter; |
scheib
2016/02/10 18:59:46
return static_cast<BluetoothAdapterMac*>(this->ada
jlebel
2016/02/10 21:20:07
Done.
|
+} |
+ |
+CBPeripheral* BluetoothLowEnergyDeviceMac::GetPeripheral() { |
+ return peripheral_; |
+} |
+ |
+void BluetoothLowEnergyDeviceMac::DidDisconnectPeripheral() { |
+ if (create_gatt_connection_error_callbacks_.empty()) { |
+ DidDisconnectGatt(); |
+ } else { |
+ DidFailToConnectGatt(ERROR_FAILED); |
+ } |
+} |
+ |
+void BluetoothLowEnergyDeviceMac::GattConnected() { |
+ this->DidConnectGatt(); |
scheib
2016/02/10 18:59:46
DidConnectGatt();
jlebel
2016/02/10 21:20:07
Done.
|
+} |
+ |
CBPeripheralState BluetoothLowEnergyDeviceMac::GetPeripheralState() const { |
Class peripheral_class = NSClassFromString(@"CBPeripheral"); |
base::scoped_nsobject<NSMethodSignature> signature([[peripheral_class |