Index: chrome/browser/chromeos/bluetooth/bluetooth_device.h |
diff --git a/chrome/browser/chromeos/bluetooth/bluetooth_device.h b/chrome/browser/chromeos/bluetooth/bluetooth_device.h |
index 7c27ba2f68287ece0c9168fa9762c9ae3a040b3b..77e5e3520ea5cfe654db5e00552814f26b0af8fb 100644 |
--- a/chrome/browser/chromeos/bluetooth/bluetooth_device.h |
+++ b/chrome/browser/chromeos/bluetooth/bluetooth_device.h |
@@ -12,6 +12,7 @@ |
#include "base/basictypes.h" |
#include "base/callback.h" |
#include "base/memory/scoped_ptr.h" |
+#include "base/memory/weak_ptr.h" |
#include "base/string16.h" |
#include "chromeos/dbus/bluetooth_agent_service_provider.h" |
#include "chromeos/dbus/bluetooth_device_client.h" |
@@ -20,6 +21,7 @@ |
namespace chromeos { |
class BluetoothAdapter; |
+class BluetoothSocket; |
// The BluetoothDevice class represents a remote Bluetooth device, both |
// its properties and capabilities as discovered by a local adapter and |
@@ -249,6 +251,20 @@ class BluetoothDevice : private BluetoothDeviceClient::Observer, |
// have been deleted. If the request fails, |error_callback| will be called. |
void Forget(ErrorCallback error_callback); |
+ // SocketCallback is used by ConnectToService to return a BluetoothSocket |
+ // to the caller, or NULL if there was an error. The socket will remain open |
+ // until the last reference to the returned BluetoothSocket is released. |
+ typedef base::Callback<void(scoped_refptr<BluetoothSocket>)> SocketCallback; |
+ |
+ // Attempts to open a socket to a service matching |uuid| on this device. If |
+ // the connection is successful, |callback| is called with a BluetoothSocket. |
+ // Otherwise |callback| is called with NULL. The socket is closed as soon as |
+ // all references to the BluetoothSocket are released. Note that the |
+ // BluetoothSocket object can outlive both this BluetoothDevice and the |
+ // BluetoothAdapter for this device. |
+ void ConnectToService(const std::string& service_uuid, |
+ SocketCallback callback); |
+ |
private: |
friend class BluetoothAdapter; |
@@ -327,6 +343,21 @@ class BluetoothDevice : private BluetoothDeviceClient::Observer, |
const BluetoothDeviceClient::ServiceMap& service_map, |
bool success); |
+ // Opens a socket to this device on the provided |channel|. |
+ scoped_refptr<BluetoothSocket> OpenSocket(const std::string& service_uuid, |
+ uint8_t channel); |
keybuk
2012/04/19 23:30:11
OpenSocket is gone now, right?
bryeung
2012/04/20 00:17:56
Oops! Good catch.
|
+ |
+ // Called by BluetoothDeviceClient when a call to DiscoverServices() that was |
+ // initated from ConnectToService completes. The |callback| is called with |
+ // true iff a connection was successfully established. The rest of the |
+ // parameters are as documented for a BluetoothDeviceClient::ServicesCallback. |
+ void ConnectToMatchingService( |
+ const std::string& service_uuid, |
+ SocketCallback callback, |
+ const dbus::ObjectPath& object_path, |
+ const BluetoothDeviceClient::ServiceMap& service_map, |
+ bool success); |
+ |
// BluetoothDeviceClient::Observer override. |
// |
// Called when the device with object path |object_path| is about |