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

Unified Diff: chromeos/dbus/experimental_bluetooth_agent_service_provider.h

Issue 12605008: D-Bus Clients for BlueZ 5 API (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: mock dbus thread manager without gmock? I didn't even know that was a thing! Created 7 years, 9 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 side-by-side diff with in-line comments
Download patch
Index: chromeos/dbus/experimental_bluetooth_agent_service_provider.h
diff --git a/chromeos/dbus/bluetooth_agent_service_provider.h b/chromeos/dbus/experimental_bluetooth_agent_service_provider.h
similarity index 75%
copy from chromeos/dbus/bluetooth_agent_service_provider.h
copy to chromeos/dbus/experimental_bluetooth_agent_service_provider.h
index fbf4dacccf69a69cc9594dc18456c299e2426aab..414c8dbc35b76b8ee9c28ba8b71e32ea7e9a6c16 100644
--- a/chromeos/dbus/bluetooth_agent_service_provider.h
+++ b/chromeos/dbus/experimental_bluetooth_agent_service_provider.h
@@ -1,9 +1,9 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
+// Copyright (c) 2013 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 CHROMEOS_DBUS_BLUETOOTH_AGENT_SERVICE_PROVIDER_H_
-#define CHROMEOS_DBUS_BLUETOOTH_AGENT_SERVICE_PROVIDER_H_
+#ifndef CHROMEOS_DBUS_EXPERIMENTAL_BLUETOOTH_AGENT_SERVICE_PROVIDER_H_
+#define CHROMEOS_DBUS_EXPERIMENTAL_BLUETOOTH_AGENT_SERVICE_PROVIDER_H_
#include <string>
@@ -15,16 +15,19 @@
namespace chromeos {
-// BluetoothAgentServiceProvider is used to provide a D-Bus object that BlueZ
-// can communicate with during a remote device pairing request.
+// ExperimentalBluetoothAgentServiceProvider is used to provide a D-Bus object
+// that BlueZ can communicate with during a remote device pairing request.
//
// Instantiate with a chosen D-Bus object path and delegate object, and pass
// the D-Bus object path as the |agent_path| argument to the
-// chromeos::BluetoothAdapterClient::CreatePairedDevice() method. Calls made
-// to the agent by the Bluetooth daemon will be passed on to your Delegate
-// object for handling, and responses returned using the callbacks supplied
-// to those methods.
-class CHROMEOS_EXPORT BluetoothAgentServiceProvider {
+// chromeos::ExperimentalBluetoothAgentManagerClient::RegisterAgent() method.
+//
+// After initiating the pairing process with a device, using the
+// chromeos::ExperimentalBluetoothDeviceClient::Pair() method, the Bluetooth
+// daemon will make calls to this agent object and they will be passed on to
+// your Delegate object for handling. Responses should be returned using the
+// callbacks supplied to those methods.
+class CHROMEOS_EXPORT ExperimentalBluetoothAgentServiceProvider {
public:
// Interface for reacting to agent requests.
class Delegate {
@@ -42,17 +45,6 @@ class CHROMEOS_EXPORT BluetoothAgentServiceProvider {
CANCELLED
};
- // Possible values for the |mode| parameter of the ConfirmModeChange()
- // method. Off indicates that the adapter is to be turned off, connectable
- // indicates that the adapter is to be turned on and accept incoming
- // connections, and discoverable indicates the adapter is to be turned
- // on and discoverable by remote devices.
- enum Mode {
- OFF,
- CONNECTABLE,
- DISCOVERABLE
- };
-
// The PinCodeCallback is used for the RequestPinCode() method, it should
// be called with two arguments, the |status| of the request (success,
// rejected or cancelled) and the |pincode| requested.
@@ -84,18 +76,6 @@ class CHROMEOS_EXPORT BluetoothAgentServiceProvider {
virtual void RequestPinCode(const dbus::ObjectPath& device_path,
const PinCodeCallback& callback) = 0;
- // This method will be called when the Bluetooth daemon requires a
- // Passkey for authentication of the device with object path |device_path|,
- // the agent should obtain the passkey from the user (a numeric in the
- // range 0-999999) and call |callback| to provide it, or indicate
- // rejection or cancellation of the request.
- //
- // Passkeys are generally required for Bluetooth 2.1 and later devices
- // which cannot provide input or display on their own, and don't accept
- // passkey-less pairing.
- virtual void RequestPasskey(const dbus::ObjectPath& device_path,
- const PasskeyCallback& callback) = 0;
-
// This method will be called when the Bluetooth daemon requires that the
// user enter the PIN code |pincode| into the device with object path
// |device_path| so that it may be authenticated. The Cancel() method
@@ -108,6 +88,18 @@ class CHROMEOS_EXPORT BluetoothAgentServiceProvider {
virtual void DisplayPinCode(const dbus::ObjectPath& device_path,
const std::string& pincode) = 0;
+ // This method will be called when the Bluetooth daemon requires a
+ // Passkey for authentication of the device with object path |device_path|,
+ // the agent should obtain the passkey from the user (a numeric in the
+ // range 0-999999) and call |callback| to provide it, or indicate
+ // rejection or cancellation of the request.
+ //
+ // Passkeys are generally required for Bluetooth 2.1 and later devices
+ // which cannot provide input or display on their own, and don't accept
+ // passkey-less pairing.
+ virtual void RequestPasskey(const dbus::ObjectPath& device_path,
+ const PasskeyCallback& callback) = 0;
+
// This method will be called when the Bluetooth daemon requires that the
// user enter the Passkey |passkey| into the device with object path
// |device_path| so that it may be authenticated. The Cancel() method
@@ -118,8 +110,11 @@ class CHROMEOS_EXPORT BluetoothAgentServiceProvider {
// but not display, such as keyboards. The Passkey is a numeric in the
// range 0-999999 and should be always presented zero-padded to six
// digits.
+ //
+ // As the user enters the passkey onto the device, |entered| will be
+ // updated to reflect the number of digits entered so far.
virtual void DisplayPasskey(const dbus::ObjectPath& device_path,
- uint32 passkey) = 0;
+ uint32 passkey, int16 entered) = 0;
// This method will be called when the Bluetooth daemon requires that the
// user confirm that the Passkey |passkey| is displayed on the screen
@@ -136,43 +131,46 @@ class CHROMEOS_EXPORT BluetoothAgentServiceProvider {
uint32 passkey,
const ConfirmationCallback& callback) = 0;
+ // This method will be called when the Bluetooth daemon requires
+ // authorization of an incoming pairing attempt from the device with object
+ // path |device_path| that would have otherwised triggered the just-works
+ // pairing model.
+ //
+ // The agent should confirm the incoming pairing with the user and call
+ // |callback| to provide their response (success, rejected or cancelled).
+ virtual void RequestAuthorization(const dbus::ObjectPath& device_path,
+ const ConfirmationCallback& callback) = 0;
+
// This method will be called when the Bluetooth daemon requires that the
// user confirm that the device with object path |object_path| is
// authorized to connect to the service with UUID |uuid|. The agent should
// confirm with the user and call |callback| to provide their response
// (success, rejected or cancelled).
- virtual void Authorize(const dbus::ObjectPath& device_path,
- const std::string& uuid,
- const ConfirmationCallback& callback) = 0;
-
- // This method will be called when the Bluetooth daemon requires that the
- // user confirm that the device adapter may switch to mode |mode|. The
- // agent should confirm with the user and call |callback| to provide
- // their response (success, rejected or cancelled).
- virtual void ConfirmModeChange(Mode mode,
- const ConfirmationCallback& callback) = 0;
+ virtual void AuthorizeService(const dbus::ObjectPath& device_path,
+ const std::string& uuid,
+ const ConfirmationCallback& callback) = 0;
// This method will be called by the Bluetooth daemon to indicate that
// the request failed before a reply was returned from the device.
virtual void Cancel() = 0;
};
- virtual ~BluetoothAgentServiceProvider();
+ virtual ~ExperimentalBluetoothAgentServiceProvider();
// Creates the instance where |bus| is the D-Bus bus connection to export
// the object onto, |object_path| is the object path that it should have
// and |delegate| is the object to which all method calls will be passed
// and responses generated from.
- static BluetoothAgentServiceProvider* Create(
+ static ExperimentalBluetoothAgentServiceProvider* Create(
dbus::Bus* bus, const dbus::ObjectPath& object_path, Delegate* delegate);
protected:
- BluetoothAgentServiceProvider();
+ ExperimentalBluetoothAgentServiceProvider();
private:
- DISALLOW_COPY_AND_ASSIGN(BluetoothAgentServiceProvider);
+ DISALLOW_COPY_AND_ASSIGN(ExperimentalBluetoothAgentServiceProvider);
};
} // namespace chromeos
-#endif // CHROMEOS_DBUS_BLUETOOTH_AGENT_SERVICE_PROVIDER_H_
+#endif // CHROMEOS_DBUS_EXPERIMENTAL_BLUETOOTH_AGENT_SERVICE_PROVIDER_H_

Powered by Google App Engine
This is Rietveld 408576698