| Index: device/bluetooth/dbus/bluetooth_gatt_attribute_value_delegate.h | 
| diff --git a/device/bluetooth/dbus/bluetooth_gatt_attribute_value_delegate.h b/device/bluetooth/dbus/bluetooth_gatt_attribute_value_delegate.h | 
| new file mode 100644 | 
| index 0000000000000000000000000000000000000000..f44847aab58d2d415546bc5629c10f6635a94b49 | 
| --- /dev/null | 
| +++ b/device/bluetooth/dbus/bluetooth_gatt_attribute_value_delegate.h | 
| @@ -0,0 +1,51 @@ | 
| +// Copyright 2016 The Chromium Authors. All rights reserved. | 
| +// Use of this source code is governed by a BSD-style license that can be | 
| +// found in the LICENSE file. | 
| + | 
| +#ifndef DEVICE_BLUETOOTH_DBUS_BLUETOOTH_GATT_ATTRIBUTE_VALUE_DELEGATE_H_ | 
| +#define DEVICE_BLUETOOTH_DBUS_BLUETOOTH_GATT_ATTRIBUTE_VALUE_DELEGATE_H_ | 
| + | 
| +#include <cstdint> | 
| +#include <vector> | 
| + | 
| +#include "base/callback_forward.h" | 
| +#include "device/bluetooth/bluetooth_local_gatt_service.h" | 
| + | 
| +namespace bluez { | 
| + | 
| +// A simpler interface for reacting to GATT attribute value requests by the | 
| +// DBus attribute service providers. | 
| +class BluetoothGattAttributeValueDelegate { | 
| + public: | 
| +  virtual ~BluetoothGattAttributeValueDelegate() {} | 
| + | 
| +  // This method will be called when a remote device requests to read the | 
| +  // value of the exported GATT attribute. Invoke |callback| with a value | 
| +  // to return that value to the requester. Invoke |error_callback| to report | 
| +  // a failure to read the value. This can happen, for example, if the | 
| +  // attribute has no read permission set. Either callback should be | 
| +  // invoked after a reasonable amount of time, since the request will time | 
| +  // out if left pending for too long causing a disconnection. | 
| +  virtual void GetValue( | 
| +      const device::BluetoothLocalGattService::Delegate::ValueCallback& | 
| +          callback, | 
| +      const device::BluetoothLocalGattService::Delegate::ErrorCallback& | 
| +          error_callback) = 0; | 
| + | 
| +  // This method will be called, when a remote device requests to write the | 
| +  // value of the exported GATT attribute. Invoke |callback| to report | 
| +  // that the value was successfully written. Invoke |error_callback| to | 
| +  // report a failure to write the value. This can happen, for example, if the | 
| +  // attribute has no write permission set. Either callback should be | 
| +  // invoked after a reasonable amount of time, since the request will time | 
| +  // out if left pending for too long causing a disconnection. | 
| +  virtual void SetValue( | 
| +      const std::vector<uint8_t>& value, | 
| +      const base::Closure& callback, | 
| +      const device::BluetoothLocalGattService::Delegate::ErrorCallback& | 
| +          error_callback) = 0; | 
| +}; | 
| + | 
| +}  // namespace bluez | 
| + | 
| +#endif  // DEVICE_BLUETOOTH_DBUS_BLUETOOTH_GATT_ATTRIBUTE_VALUE_DELEGATE_H_ | 
|  |