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

Side by Side Diff: device/bluetooth/bluetooth_remote_gatt_service_mac.h

Issue 1950033002: bluetooth: mac: Initial BluetoothRemoteGattCharacteristicMac implementation (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@servicescan_cleanup
Patch Set: Fixing the build 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 unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef DEVICE_BLUETOOTH_BLUETOOTH_REMOTE_GATT_SERVICE_MAC_H_ 5 #ifndef DEVICE_BLUETOOTH_BLUETOOTH_REMOTE_GATT_SERVICE_MAC_H_
6 #define DEVICE_BLUETOOTH_BLUETOOTH_REMOTE_GATT_SERVICE_MAC_H_ 6 #define DEVICE_BLUETOOTH_BLUETOOTH_REMOTE_GATT_SERVICE_MAC_H_
7 7
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <vector> 10 #include <vector>
11 11
12 #include "base/containers/scoped_ptr_hash_map.h"
12 #include "base/mac/scoped_nsobject.h" 13 #include "base/mac/scoped_nsobject.h"
13 #include "device/bluetooth/bluetooth_remote_gatt_service.h" 14 #include "device/bluetooth/bluetooth_remote_gatt_service.h"
14 15
16 @class CBCharacteristic;
17 @class CBPeripheral;
15 @class CBService; 18 @class CBService;
16 19
17 namespace device { 20 namespace device {
18 21
22 class BluetoothAdapterMac;
19 class BluetoothDevice; 23 class BluetoothDevice;
20 class BluetoothGattCharacteristic; 24 class BluetoothRemoteGattCharacteristicMac;
21 class BluetoothLowEnergyDeviceMac; 25 class BluetoothLowEnergyDeviceMac;
22 class BluetoothTestMac; 26 class BluetoothTestMac;
23 27
24 class DEVICE_BLUETOOTH_EXPORT BluetoothRemoteGattServiceMac 28 class DEVICE_BLUETOOTH_EXPORT BluetoothRemoteGattServiceMac
25 : public BluetoothRemoteGattService { 29 : public BluetoothRemoteGattService {
26 public: 30 public:
27 BluetoothRemoteGattServiceMac( 31 BluetoothRemoteGattServiceMac(
28 BluetoothLowEnergyDeviceMac* bluetooth_device_mac, 32 BluetoothLowEnergyDeviceMac* bluetooth_device_mac,
29 CBService* service, 33 CBService* service,
30 bool is_primary); 34 bool is_primary);
31 ~BluetoothRemoteGattServiceMac() override; 35 ~BluetoothRemoteGattServiceMac() override;
32 36
33 // BluetoothRemoteGattService override. 37 // BluetoothRemoteGattService override.
34 std::string GetIdentifier() const override; 38 std::string GetIdentifier() const override;
35 BluetoothUUID GetUUID() const override; 39 BluetoothUUID GetUUID() const override;
36 bool IsPrimary() const override; 40 bool IsPrimary() const override;
37 BluetoothDevice* GetDevice() const override; 41 BluetoothDevice* GetDevice() const override;
38 std::vector<BluetoothRemoteGattCharacteristic*> GetCharacteristics() 42 std::vector<BluetoothRemoteGattCharacteristic*> GetCharacteristics()
39 const override; 43 const override;
40 std::vector<BluetoothRemoteGattService*> GetIncludedServices() const override; 44 std::vector<BluetoothRemoteGattService*> GetIncludedServices() const override;
41 BluetoothRemoteGattCharacteristic* GetCharacteristic( 45 BluetoothRemoteGattCharacteristic* GetCharacteristic(
42 const std::string& identifier) const override; 46 const std::string& identifier) const override;
43 47
44 private: 48 private:
45 friend BluetoothLowEnergyDeviceMac; 49 friend BluetoothLowEnergyDeviceMac;
46 friend BluetoothTestMac; 50 friend BluetoothTestMac;
47 51
52 // Starts discovering characteristics by calling CoreBluetooth.
53 void DiscoverCharacteristics();
54 // Called by the BluetoothLowEnergyDeviceMac instance when the characteristics
55 // has been discovered.
56 void DidDiscoverCharacteristics();
57 // Returns true if the characteristics has been discovered.
58 bool IsDiscoveryComplete();
59
60 // Returns the mac adapter.
61 BluetoothAdapterMac* GetMacAdapter() const;
62 // Returns CBPeripheral.
63 CBPeripheral* GetCBPeripheral() const;
48 // Returns CBService. 64 // Returns CBService.
49 CBService* GetService() const; 65 CBService* GetService() const;
66 // Returns a remote characteristic based on the CBCharacteristic.
67 BluetoothRemoteGattCharacteristicMac* GetBluetoothRemoteGattCharacteristicMac(
68 CBCharacteristic* characteristic) const;
50 69
51 // bluetooth_device_mac_ owns instances of this class. 70 // bluetooth_device_mac_ owns instances of this class.
52 BluetoothLowEnergyDeviceMac* bluetooth_device_mac_; 71 BluetoothLowEnergyDeviceMac* bluetooth_device_mac_;
53 // A service from CBPeripheral.services. 72 // A service from CBPeripheral.services.
54 base::scoped_nsobject<CBService> service_; 73 base::scoped_nsobject<CBService> service_;
74 // Map of characteristics, keyed by characteristic identifier.
75 std::unordered_map<std::string,
76 std::unique_ptr<BluetoothRemoteGattCharacteristicMac>>
77 gatt_characteristic_macs_;
55 bool is_primary_; 78 bool is_primary_;
56 // Service identifier. 79 // Service identifier.
57 std::string identifier_; 80 std::string identifier_;
58 // Service UUID. 81 // Service UUID.
59 BluetoothUUID uuid_; 82 BluetoothUUID uuid_;
83 // Is true if the characteristics has been discovered.
84 bool is_discovery_complete_;
60 85
61 DISALLOW_COPY_AND_ASSIGN(BluetoothRemoteGattServiceMac); 86 DISALLOW_COPY_AND_ASSIGN(BluetoothRemoteGattServiceMac);
62 }; 87 };
63 88
64 } // namespace device 89 } // namespace device
65 90
66 #endif // DEVICE_BLUETOOTH_BLUETOOTH_REMOTE_GATT_SERVICE_MAC_H_ 91 #endif // DEVICE_BLUETOOTH_BLUETOOTH_REMOTE_GATT_SERVICE_MAC_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698