Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1525)

Unified Diff: device/bluetooth/bluetooth_remote_gatt_service_mac.h

Issue 2071323002: bluetooth: mac: Initial BluetoothRemoteGattCharacteristicMac implementation (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Skip reconnect-during-disconnected-event test Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: device/bluetooth/bluetooth_remote_gatt_service_mac.h
diff --git a/device/bluetooth/bluetooth_remote_gatt_service_mac.h b/device/bluetooth/bluetooth_remote_gatt_service_mac.h
index f5add19df25f1f481358f48c45298dee5513d635..43679495d189ba89fa1595e96cee9276fd25d912 100644
--- a/device/bluetooth/bluetooth_remote_gatt_service_mac.h
+++ b/device/bluetooth/bluetooth_remote_gatt_service_mac.h
@@ -9,15 +9,19 @@
#include <vector>
+#include "base/containers/scoped_ptr_hash_map.h"
#include "base/mac/scoped_nsobject.h"
#include "device/bluetooth/bluetooth_remote_gatt_service.h"
+@class CBCharacteristic;
+@class CBPeripheral;
@class CBService;
namespace device {
+class BluetoothAdapterMac;
class BluetoothDevice;
-class BluetoothGattCharacteristic;
+class BluetoothRemoteGattCharacteristicMac;
class BluetoothLowEnergyDeviceMac;
class BluetoothTestMac;
@@ -45,18 +49,39 @@ class DEVICE_BLUETOOTH_EXPORT BluetoothRemoteGattServiceMac
friend BluetoothLowEnergyDeviceMac;
friend BluetoothTestMac;
+ // Starts discovering characteristics by calling CoreBluetooth.
+ void DiscoverCharacteristics();
+ // Called by the BluetoothLowEnergyDeviceMac instance when the characteristics
+ // has been discovered.
+ void DidDiscoverCharacteristics();
+ // Returns true if the characteristics has been discovered.
+ bool IsDiscoveryComplete();
+
+ // Returns the mac adapter.
+ BluetoothAdapterMac* GetMacAdapter() const;
+ // Returns CBPeripheral.
+ CBPeripheral* GetCBPeripheral() const;
// Returns CBService.
CBService* GetService() const;
+ // Returns a remote characteristic based on the CBCharacteristic.
+ BluetoothRemoteGattCharacteristicMac* GetBluetoothRemoteGattCharacteristicMac(
+ CBCharacteristic* characteristic) const;
// bluetooth_device_mac_ owns instances of this class.
BluetoothLowEnergyDeviceMac* bluetooth_device_mac_;
// A service from CBPeripheral.services.
base::scoped_nsobject<CBService> service_;
+ // Map of characteristics, keyed by characteristic identifier.
+ std::unordered_map<std::string,
+ std::unique_ptr<BluetoothRemoteGattCharacteristicMac>>
+ gatt_characteristic_macs_;
bool is_primary_;
// Service identifier.
std::string identifier_;
// Service UUID.
BluetoothUUID uuid_;
+ // Is true if the characteristics has been discovered.
+ bool is_discovery_complete_;
DISALLOW_COPY_AND_ASSIGN(BluetoothRemoteGattServiceMac);
};

Powered by Google App Engine
This is Rietveld 408576698