Chromium Code Reviews| Index: chrome/browser/chromeos/bluetooth/bluetooth_device_interface.h |
| diff --git a/chrome/browser/chromeos/bluetooth/bluetooth_device_interface.h b/chrome/browser/chromeos/bluetooth/bluetooth_device_interface.h |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..59095088e7920cef5b690e79d5c9063cb2646b0f |
| --- /dev/null |
| +++ b/chrome/browser/chromeos/bluetooth/bluetooth_device_interface.h |
| @@ -0,0 +1,107 @@ |
| +// Copyright (c) 2012 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 CHROME_BROWSER_CHROMEOS_BLUETOOTH_BLUETOOTH_DEVICE_INTERFACE_H_ |
|
bryeung
2012/09/07 18:35:57
This file can just be "bluetooth_device.h"
youngki
2012/09/13 18:05:02
Done.
|
| +#define CHROME_BROWSER_CHROMEOS_BLUETOOTH_BLUETOOTH_DEVICE_INTERFACE_H_ |
| + |
| +#include <string> |
| + |
| +#include "base/callback.h" |
| +#include "base/string16.h" |
| +#include "base/memory/ref_counted.h" |
| + |
| +namespace chromeos { |
| + |
| +class BluetoothServiceRecordDBus; |
| +class BluetoothSocketPosix; |
| + |
| +struct BluetoothOutOfBandPairingData; |
| + |
| +// The BluetoothDeviceInterface represents a remote Bluetooth device, both its |
| +// properties and capabilities as discovered by a local adapter and actions that |
| +// may be performed on the remove device such as pairing, connection and |
| +// disconnection. |
| +class BluetoothDeviceInterface { |
|
bryeung
2012/09/07 18:35:57
This can just be BluetoothDevice
youngki
2012/09/13 18:05:02
Done.
|
| + public: |
| + virtual ~BluetoothDeviceInterface() {} |
| + |
| + // Returns the Bluetooth of address the device. This should be used as |
| + // a unique key to identify the device and copied where needed. |
| + virtual const std::string& address() const = 0; |
| + |
| + // Returns the name of the device suitable for displaying, this may |
| + // be a synthesied string containing the address and localized type name |
| + // if the device has no obtained name. |
| + virtual string16 GetName() const = 0; |
| + |
| + // Indicates whether the device is paired to the adapter, whether or not |
| + // that pairing is permanent or temporary. |
| + virtual bool IsPaired() const = 0; |
| + |
| + // Indicates whether the device is bonded to the adapter, bonding is |
| + // formed by pairing and exchanging high-security link keys so that |
| + // connections may be encrypted. |
| + virtual bool IsBonded() const = 0; |
| + |
| + // Indicates whether the device is currently connected to the adapter |
| + // and at least one service available for use. |
| + virtual bool IsConnected() const = 0; |
| + |
| + // The ErrorCallback is used for methods that can fail in which case it |
| + // is called, in the success case the callback is simply not called. |
| + typedef base::Callback<void()> ErrorCallback; |
| + |
| + // Returns the services (as BluetoothServiceRecordDBus objects) that this |
| + // device provides. |
| + typedef ScopedVector<BluetoothServiceRecordDBus> ServiceRecordList; |
| + typedef base::Callback<void(const ServiceRecordList&)> ServiceRecordsCallback; |
| + virtual void GetServiceRecords(const ServiceRecordsCallback& callback, |
| + const ErrorCallback& error_callback) = 0; |
| + |
| + // Indicates whether this device provides the given service. |uuid| should |
| + // be in canonical form (see bluetooth_utils::CanonicalUuid). |
| + virtual bool ProvidesServiceWithUUID(const std::string& uuid) const = 0; |
| + |
| + // The ProvidesServiceCallback is used by ProvidesServiceWithName to indicate |
| + // whether or not a matching service was found. |
| + typedef base::Callback<void(bool)> ProvidesServiceCallback; |
| + |
| + // Indicates whether this device provides the given service. |
| + virtual void ProvidesServiceWithName( |
| + const std::string& name, |
| + const ProvidesServiceCallback& callback) = 0; |
| + |
| + // SocketCallback is used by ConnectToService to return a BluetoothSocketPosix |
| + // to the caller, or NULL if there was an error. The socket will remain open |
| + // until the last reference to the returned BluetoothSocketPosix is released. |
| + typedef base::Callback<void(scoped_refptr<BluetoothSocketPosix>)> |
| + SocketCallback; |
| + |
| + // Attempts to open a socket to a service matching |uuid| on this device. If |
| + // the connection is successful, |callback| is called with a |
| + // BluetoothSocketPosix. |
| + // Otherwise |callback| is called with NULL. The socket is closed as soon as |
| + // all references to the BluetoothSocketPosix are released. Note that the |
| + // BluetoothSocketPosix object can outlive both this BluetoothDeviceDBus and |
| + // the BluetoothAdapterDBus for this device. |
| + virtual void ConnectToService(const std::string& service_uuid, |
| + const SocketCallback& callback) = 0; |
| + |
| + // Sets the Out Of Band pairing data for this device to |data|. Exactly one |
| + // of |callback| or |error_callback| will be run. |
| + virtual void SetOutOfBandPairingData( |
| + const BluetoothOutOfBandPairingData& data, |
| + const base::Closure& callback, |
| + const ErrorCallback& error_callback) = 0; |
| + |
| + // Clears the Out Of Band pairing data for this device. Exactly one of |
| + // |callback| or |error_callback| will be run. |
| + virtual void ClearOutOfBandPairingData( |
| + const base::Closure& callback, |
| + const ErrorCallback& error_callback) = 0; |
| +}; |
| + |
| +} // namespace chromeos |
| + |
| +#endif // CHROME_BROWSER_CHROMEOS_BLUETOOTH_BLUETOOTH_DEVICE_INTERFACE_H_ |