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

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

Issue 2826383002: bluetooth: Make in progress errors consistent across android
Patch Set: Fix windows Created 3 years, 8 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_CHARACTERISTIC_H_ 5 #ifndef DEVICE_BLUETOOTH_BLUETOOTH_REMOTE_GATT_CHARACTERISTIC_H_
6 #define DEVICE_BLUETOOTH_BLUETOOTH_REMOTE_GATT_CHARACTERISTIC_H_ 6 #define DEVICE_BLUETOOTH_BLUETOOTH_REMOTE_GATT_CHARACTERISTIC_H_
7 7
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <queue> 10 #include <queue>
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after
112 // the characteristic's new value. 112 // the characteristic's new value.
113 // 113 //
114 // To stop the flow of notifications, simply call the Stop method on the 114 // To stop the flow of notifications, simply call the Stop method on the
115 // BluetoothGattNotifySession object that you received in |callback|. 115 // BluetoothGattNotifySession object that you received in |callback|.
116 virtual void StartNotifySession(const NotifySessionCallback& callback, 116 virtual void StartNotifySession(const NotifySessionCallback& callback,
117 const ErrorCallback& error_callback); 117 const ErrorCallback& error_callback);
118 118
119 // Sends a read request to a remote characteristic to read its value. 119 // Sends a read request to a remote characteristic to read its value.
120 // |callback| is called to return the read value on success and 120 // |callback| is called to return the read value on success and
121 // |error_callback| is called for failures. 121 // |error_callback| is called for failures.
122 virtual void ReadRemoteCharacteristic( 122 // If there are any other GATT operations in progress this will fail
123 // with BluetoothRemoteGattService::GATT_ERROR_IN_PROGRESS. This currently
124 // only happens on Android.
125 // TODO(crbug.com/657921): Return in progress error on all platforms.
126 virtual void ReadRemoteCharacteristic(const ValueCallback& callback,
127 const ErrorCallback& error_callback);
128 // TODO(crbug.com/657921): Make pure virtual once all platform implement it.
129 virtual void ReadRemoteCharacteristicImpl(
123 const ValueCallback& callback, 130 const ValueCallback& callback,
124 const ErrorCallback& error_callback) = 0; 131 const ErrorCallback& error_callback){};
125 132
126 // Sends a write request to a remote characteristic with the value |value|. 133 // Sends a write request to a remote characteristic with the value |value|.
127 // |callback| is called to signal success and |error_callback| for failures. 134 // |callback| is called to signal success and |error_callback| for failures.
128 // This method only applies to remote characteristics and will fail for those 135 // This method only applies to remote characteristics and will fail for those
129 // that are locally hosted. 136 // that are locally hosted.
130 virtual void WriteRemoteCharacteristic( 137 // If there are any other GATT operations in progress this will fail
138 // with BluetoothRemoteGattService::GATT_ERROR_IN_PROGRESS. This currently
139 // only happens on Android.
140 // TODO(crbug.com/657921): Return in progress error on all platforms.
141 virtual void WriteRemoteCharacteristic(const std::vector<uint8_t>& value,
142 const base::Closure& callback,
143 const ErrorCallback& error_callback);
144 // TODO(crbug.com/657921): Make pure virtual once all platform implement it.
145 virtual void WriteRemoteCharacteristicImpl(
131 const std::vector<uint8_t>& value, 146 const std::vector<uint8_t>& value,
132 const base::Closure& callback, 147 const base::Closure& callback,
133 const ErrorCallback& error_callback) = 0; 148 const ErrorCallback& error_callback){};
134 149
135 protected: 150 protected:
136 BluetoothRemoteGattCharacteristic(); 151 BluetoothRemoteGattCharacteristic();
137 ~BluetoothRemoteGattCharacteristic() override; 152 ~BluetoothRemoteGattCharacteristic() override;
138 153
154 bool HasPendingGattOperation();
155 void SetPendingGattOperation(bool pending);
156
139 // Writes to the Client Characteristic Configuration descriptor to enable 157 // Writes to the Client Characteristic Configuration descriptor to enable
140 // notifications/indications. This method is meant to be called from 158 // notifications/indications. This method is meant to be called from
141 // StartNotifySession and should contain only the code necessary to start 159 // StartNotifySession and should contain only the code necessary to start
142 // listening to characteristic notifications on a particular platform. 160 // listening to characteristic notifications on a particular platform.
143 virtual void SubscribeToNotifications( 161 virtual void SubscribeToNotifications(
144 BluetoothRemoteGattDescriptor* ccc_descriptor, 162 BluetoothRemoteGattDescriptor* ccc_descriptor,
145 const base::Closure& callback, 163 const base::Closure& callback,
146 const ErrorCallback& error_callback) = 0; 164 const ErrorCallback& error_callback) = 0;
147 165
148 // Writes to the Client Characteristic Configuration descriptor to disable 166 // Writes to the Client Characteristic Configuration descriptor to disable
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
230 std::set<BluetoothGattNotifySession*> notify_sessions_; 248 std::set<BluetoothGattNotifySession*> notify_sessions_;
231 249
232 base::WeakPtrFactory<BluetoothRemoteGattCharacteristic> weak_ptr_factory_; 250 base::WeakPtrFactory<BluetoothRemoteGattCharacteristic> weak_ptr_factory_;
233 251
234 DISALLOW_COPY_AND_ASSIGN(BluetoothRemoteGattCharacteristic); 252 DISALLOW_COPY_AND_ASSIGN(BluetoothRemoteGattCharacteristic);
235 }; 253 };
236 254
237 } // namespace device 255 } // namespace device
238 256
239 #endif // DEVICE_BLUETOOTH_BLUETOOTH_REMOTE_GATT_CHARACTERISTIC_H_ 257 #endif // DEVICE_BLUETOOTH_BLUETOOTH_REMOTE_GATT_CHARACTERISTIC_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698