OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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_GATT_DESCRIPTOR_H_ | 5 #ifndef DEVICE_BLUETOOTH_BLUETOOTH_GATT_DESCRIPTOR_H_ |
6 #define DEVICE_BLUETOOTH_BLUETOOTH_GATT_DESCRIPTOR_H_ | 6 #define DEVICE_BLUETOOTH_BLUETOOTH_GATT_DESCRIPTOR_H_ |
7 | 7 |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "base/basictypes.h" | 10 #include "base/basictypes.h" |
11 #include "base/callback.h" | 11 #include "base/callback.h" |
12 #include "device/bluetooth/bluetooth_export.h" | 12 #include "device/bluetooth/bluetooth_export.h" |
13 #include "device/bluetooth/bluetooth_gatt_characteristic.h" | 13 #include "device/bluetooth/bluetooth_gatt_characteristic.h" |
14 #include "device/bluetooth/bluetooth_uuid.h" | 14 #include "device/bluetooth/bluetooth_uuid.h" |
15 | 15 |
16 namespace device { | 16 namespace device { |
17 | 17 |
18 // BluetoothGattDescriptor represents a local or remote GATT characteristic | 18 // BluetoothGattDescriptor represents a local or remote GATT characteristic |
19 // descriptor. A GATT characteristic descriptor provides further information | 19 // descriptor. A GATT characteristic descriptor provides further information |
20 // about a characteristic's value. They can be used to describe the | 20 // about a characteristic's value. They can be used to describe the |
21 // characteristic's features or to control certain behaviors. | 21 // characteristic's features or to control certain behaviors. |
22 class DEVICE_BLUETOOTH_EXPORT BluetoothGattDescriptor { | 22 class DEVICE_BLUETOOTH_EXPORT BluetoothGattDescriptor { |
23 public: | 23 public: |
| 24 // The ErrorCallback is used by methods to asynchronously report errors. |
| 25 typedef base::Callback<void(BluetoothGattService::GattErrorCode)> |
| 26 ErrorCallback; |
| 27 |
| 28 // The ValueCallback is used to return the value of a remote characteristic |
| 29 // descriptor upon a read request. |
| 30 typedef base::Callback<void(const std::vector<uint8>&)> ValueCallback; |
| 31 |
24 // The Bluetooth Specification declares several predefined descriptors that | 32 // The Bluetooth Specification declares several predefined descriptors that |
25 // profiles can use. The following are definitions for the list of UUIDs | 33 // profiles can use. The following are definitions for the list of UUIDs |
26 // and descriptions of the characteristic descriptors that they represent. | 34 // and descriptions of the characteristic descriptors that they represent. |
27 // Possible values for and further information on each descriptor can be found | 35 // Possible values for and further information on each descriptor can be found |
28 // in Core v4.0, Volume 3, Part G, Section 3.3.3. All of these descriptors are | 36 // in Core v4.0, Volume 3, Part G, Section 3.3.3. All of these descriptors are |
29 // optional and may not be present for a given characteristic. | 37 // optional and may not be present for a given characteristic. |
30 | 38 |
31 // The "Characteristic Extended Properties" descriptor. This defines | 39 // The "Characteristic Extended Properties" descriptor. This defines |
32 // additional "Characteristic Properties" which cannot fit into the allocated | 40 // additional "Characteristic Properties" which cannot fit into the allocated |
33 // single octet property field of a characteristic. The value is a bit field | 41 // single octet property field of a characteristic. The value is a bit field |
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
99 // "Characteristic Presentation Format" descriptors belong to a | 107 // "Characteristic Presentation Format" descriptors belong to a |
100 // characteristic. | 108 // characteristic. |
101 // The API will construct a BluetoothGattDescriptor object for each instance | 109 // The API will construct a BluetoothGattDescriptor object for each instance |
102 // of "Characteristic Presentation Format" descriptor per instance of | 110 // of "Characteristic Presentation Format" descriptor per instance of |
103 // BluetoothGattCharacteristic that represents a remote characteristic. | 111 // BluetoothGattCharacteristic that represents a remote characteristic. |
104 // Similarly for local characteristics, implementations DO NOT need to create | 112 // Similarly for local characteristics, implementations DO NOT need to create |
105 // an instance of BluetoothGattDescriptor for this descriptor as this will be | 113 // an instance of BluetoothGattDescriptor for this descriptor as this will be |
106 // handled by the subsystem. | 114 // handled by the subsystem. |
107 static const BluetoothUUID& CharacteristicAggregateFormatUuid(); | 115 static const BluetoothUUID& CharacteristicAggregateFormatUuid(); |
108 | 116 |
109 // The ErrorCallback is used by methods to asynchronously report errors. | |
110 typedef base::Callback<void(BluetoothGattService::GattErrorCode)> | |
111 ErrorCallback; | |
112 | |
113 // The ValueCallback is used to return the value of a remote characteristic | |
114 // descriptor upon a read request. | |
115 typedef base::Callback<void(const std::vector<uint8>&)> ValueCallback; | |
116 | |
117 // Constructs a BluetoothGattDescriptor that can be associated with a local | 117 // Constructs a BluetoothGattDescriptor that can be associated with a local |
118 // GATT characteristic when the adapter is in the peripheral role. To | 118 // GATT characteristic when the adapter is in the peripheral role. To |
119 // associate the returned descriptor with a characteristic, add it to a local | 119 // associate the returned descriptor with a characteristic, add it to a local |
120 // characteristic by calling BluetoothGattCharacteristic::AddDescriptor. | 120 // characteristic by calling BluetoothGattCharacteristic::AddDescriptor. |
121 // | 121 // |
122 // This method constructs a characteristic descriptor with UUID |uuid| and the | 122 // This method constructs a characteristic descriptor with UUID |uuid| and the |
123 // initial cached value |value|. |value| will be cached and returned for read | 123 // initial cached value |value|. |value| will be cached and returned for read |
124 // requests and automatically modified for write requests by default, unless | 124 // requests and automatically modified for write requests by default, unless |
125 // an instance of BluetoothGattService::Delegate has been provided to the | 125 // an instance of BluetoothGattService::Delegate has been provided to the |
126 // associated BluetoothGattService instance, in which case the delegate will | 126 // associated BluetoothGattService instance, in which case the delegate will |
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
182 BluetoothGattDescriptor(); | 182 BluetoothGattDescriptor(); |
183 virtual ~BluetoothGattDescriptor(); | 183 virtual ~BluetoothGattDescriptor(); |
184 | 184 |
185 private: | 185 private: |
186 DISALLOW_COPY_AND_ASSIGN(BluetoothGattDescriptor); | 186 DISALLOW_COPY_AND_ASSIGN(BluetoothGattDescriptor); |
187 }; | 187 }; |
188 | 188 |
189 } // namespace device | 189 } // namespace device |
190 | 190 |
191 #endif // DEVICE_BLUETOOTH_BLUETOOTH_GATT_DESCRIPTOR_H_ | 191 #endif // DEVICE_BLUETOOTH_BLUETOOTH_GATT_DESCRIPTOR_H_ |
OLD | NEW |