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); |
}; |