diff options
Diffstat (limited to 'chromium/device/bluetooth/bluetooth_gatt_connection.h')
-rw-r--r-- | chromium/device/bluetooth/bluetooth_gatt_connection.h | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/chromium/device/bluetooth/bluetooth_gatt_connection.h b/chromium/device/bluetooth/bluetooth_gatt_connection.h new file mode 100644 index 00000000000..da630434879 --- /dev/null +++ b/chromium/device/bluetooth/bluetooth_gatt_connection.h @@ -0,0 +1,50 @@ +// Copyright 2014 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_BLUETOOTH_GATT_CONNECTION_H_ +#define DEVICE_BLUETOOTH_BLUETOOTH_GATT_CONNECTION_H_ + +#include <string> + +#include "base/callback.h" + +namespace device { + +// BluetoothGattConnection represents a GATT connection to a Bluetooth device +// that has GATT services. Instances are obtained from a BluetoothDevice, +// and the connection is kept alive as long as there is at least one +// active BluetoothGattConnection object. BluetoothGattConnection objects +// automatically update themselves, when the connection is terminated by the +// operating system (e.g. due to user action). +class BluetoothGattConnection { + public: + // Destructor automatically closes this GATT connection. If this is the last + // remaining GATT connection and this results in a call to the OS, that call + // may not always succeed. Users can make an explicit call to + // BluetoothGattConnection::Close to make sure that they are notified of + // a possible error via the callback. + virtual ~BluetoothGattConnection(); + + // Returns the Bluetooth address of the device that this connection is open + // to. + virtual std::string GetDeviceAddress() const = 0; + + // Returns true if this connection is open. + virtual bool IsConnected() = 0; + + // Disconnects this GATT connection and calls |callback| upon completion. + // After a successful invocation, the device may still remain connected due to + // other GATT connections. + virtual void Disconnect(const base::Closure& callback) = 0; + + protected: + BluetoothGattConnection(); + + private: + DISALLOW_COPY_AND_ASSIGN(BluetoothGattConnection); +}; + +} // namespace device + +#endif // DEVICE_BLUETOOTH_BLUETOOTH_GATT_CONNECTION_H_ |