| Index: device/bluetooth/bluetooth_remote_gatt_characteristic_win.h
|
| diff --git a/device/bluetooth/bluetooth_remote_gatt_characteristic_win.h b/device/bluetooth/bluetooth_remote_gatt_characteristic_win.h
|
| index f397363f500d1e606fb935949cce3cb73910732b..98601163ccbe35051dbf82cc3b048456019ea4be 100644
|
| --- a/device/bluetooth/bluetooth_remote_gatt_characteristic_win.h
|
| +++ b/device/bluetooth/bluetooth_remote_gatt_characteristic_win.h
|
| @@ -5,6 +5,8 @@
|
| #ifndef DEVICE_BLUETOOTH_BLUETOOTH_REMOTE_GATT_CHARACTERISTIC_WIN_H_
|
| #define DEVICE_BLUETOOTH_BLUETOOTH_REMOTE_GATT_CHARACTERISTIC_WIN_H_
|
|
|
| +#include <unordered_map>
|
| +
|
| #include "base/memory/weak_ptr.h"
|
| #include "base/sequenced_task_runner.h"
|
| #include "device/bluetooth/bluetooth_gatt_characteristic.h"
|
| @@ -13,6 +15,7 @@
|
| namespace device {
|
|
|
| class BluetoothAdapterWin;
|
| +class BluetoothRemoteGattDescriptorWin;
|
| class BluetoothRemoteGattServiceWin;
|
| class BluetoothTaskManagerWin;
|
|
|
| @@ -52,9 +55,26 @@ class DEVICE_BLUETOOTH_EXPORT BluetoothRemoteGattCharacteristicWin
|
| // Update included descriptors.
|
| void Update();
|
| uint16_t GetAttributeHandle() const;
|
| + BluetoothRemoteGattServiceWin* GetWinService() { return parent_service_; }
|
|
|
| private:
|
| - BluetoothAdapterWin* adapter_;
|
| + void OnGetIncludedDescriptorsCallback(
|
| + scoped_ptr<BTH_LE_GATT_DESCRIPTOR> descriptors,
|
| + uint16_t num,
|
| + HRESULT hr);
|
| + void UpdateIncludedDescriptors(PBTH_LE_GATT_DESCRIPTOR descriptors,
|
| + uint16_t num);
|
| +
|
| + // Checks if the descriptor with |uuid| and |attribute_handle| has already
|
| + // been discovered as included descriptor.
|
| + bool IsDescriptorDiscovered(BTH_LE_UUID& uuid, uint16_t attribute_handle);
|
| +
|
| + // Checks if |descriptor| still exists in this characteristic according to
|
| + // newly discovered |num| of |descriptors|.
|
| + static bool DoesDescriptorExist(PBTH_LE_GATT_DESCRIPTOR descriptors,
|
| + uint16_t num,
|
| + BluetoothRemoteGattDescriptorWin* descriptor);
|
| +
|
| BluetoothRemoteGattServiceWin* parent_service_;
|
| scoped_refptr<BluetoothTaskManagerWin> task_manager_;
|
|
|
| @@ -65,6 +85,17 @@ class DEVICE_BLUETOOTH_EXPORT BluetoothRemoteGattCharacteristicWin
|
| std::vector<uint8_t> characteristic_value_;
|
| std::string characteristic_identifier_;
|
|
|
| + // The key of GattDescriptorMap is the identitfier of
|
| + // BluetoothRemoteGattDescriptorWin instance.
|
| + typedef std::unordered_map<std::string,
|
| + scoped_ptr<BluetoothRemoteGattDescriptorWin>>
|
| + GattDescriptorMap;
|
| + GattDescriptorMap included_descriptors_;
|
| +
|
| + // Flag indicates if characteristic added notification of this characteristic
|
| + // has been sent out to avoid duplicate notification.
|
| + bool characteristic_added_notified_;
|
| +
|
| base::WeakPtrFactory<BluetoothRemoteGattCharacteristicWin> weak_ptr_factory_;
|
| DISALLOW_COPY_AND_ASSIGN(BluetoothRemoteGattCharacteristicWin);
|
| };
|
|
|