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

Side by Side Diff: chrome/browser/chromeos/bluetooth/bluetooth_device_dbus.h

Issue 10899037: Refactoring bluetooth API code. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Added #include <string> into bluetooth_adapter_dbus.cc. Created 8 years, 3 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CHROME_BROWSER_CHROMEOS_BLUETOOTH_BLUETOOTH_DEVICE_H_ 5 #ifndef CHROME_BROWSER_CHROMEOS_BLUETOOTH_BLUETOOTH_DEVICE_DBUS_H_
6 #define CHROME_BROWSER_CHROMEOS_BLUETOOTH_BLUETOOTH_DEVICE_H_ 6 #define CHROME_BROWSER_CHROMEOS_BLUETOOTH_BLUETOOTH_DEVICE_DBUS_H_
7 7
8 #include <string> 8 #include <string>
9 #include <vector> 9 #include <vector>
10 10
11 #include "base/basictypes.h" 11 #include "base/basictypes.h"
12 #include "base/callback.h"
13 #include "base/memory/scoped_ptr.h" 12 #include "base/memory/scoped_ptr.h"
14 #include "base/memory/scoped_vector.h" 13 #include "base/memory/scoped_vector.h"
15 #include "base/memory/weak_ptr.h" 14 #include "base/memory/weak_ptr.h"
16 #include "base/string16.h" 15 #include "base/string16.h"
16 #include "chrome/browser/chromeos/bluetooth/bluetooth_device_interface.h"
17 #include "chromeos/dbus/bluetooth_agent_service_provider.h" 17 #include "chromeos/dbus/bluetooth_agent_service_provider.h"
18 #include "chromeos/dbus/bluetooth_device_client.h" 18 #include "chromeos/dbus/bluetooth_device_client.h"
19 #include "chromeos/dbus/bluetooth_out_of_band_client.h" 19 #include "chromeos/dbus/bluetooth_out_of_band_client.h"
20 #include "dbus/object_path.h" 20 #include "dbus/object_path.h"
21 21
22 namespace chromeos { 22 namespace chromeos {
23 23
24 class BluetoothAdapter; 24 class BluetoothAdapterDBus;
25 class BluetoothServiceRecord; 25 class BluetoothServiceRecordDBus;
26 class BluetoothSocket; 26 class BluetoothSocketPosix;
27 27
28 // The BluetoothDevice class represents a remote Bluetooth device, both 28 struct BluetoothOutOfBandPairingData;
29 // its properties and capabilities as discovered by a local adapter and 29
30 // actions that may be performed on the remove device such as pairing, 30 // The BluetoothDeviceDBus class is an implementation of
31 // connection and disconnection. 31 // BluetoothDeviceInterface using DBus for Linux/ChromeOS platform.
32 // 32 //
33 // The class is instantiated and managed by the BluetoothAdapter class 33 // The class is instantiated and managed by the BluetoothAdapterDBus class
34 // and pointers should only be obtained from that class and not cached, 34 // and pointers should only be obtained from the BluetoothAdapterInterface and
35 // not cached,
35 // instead use the address() method as a unique key for a device. 36 // instead use the address() method as a unique key for a device.
36 // 37 //
37 // Since the lifecycle of BluetoothDevice instances is managed by 38 // Since the lifecycle of BluetoothDeviceDBus instances is managed by
38 // BluetoothAdapter, that class rather than this provides observer methods 39 // BluetoothAdapterDBus, that class rather than this provides observer methods
39 // for devices coming and going, as well as properties being updated. 40 // for devices coming and going, as well as properties being updated.
40 class BluetoothDevice : public BluetoothDeviceClient::Observer, 41 class BluetoothDeviceDBus : public BluetoothDeviceClient::Observer,
41 public BluetoothAgentServiceProvider::Delegate { 42 public BluetoothDeviceInterface,
43 public BluetoothAgentServiceProvider::Delegate {
42 public: 44 public:
43 // Possible values that may be returned by GetDeviceType(), representing
44 // different types of bluetooth device that we support or are aware of
45 // decoded from the bluetooth class information.
46 enum DeviceType {
47 DEVICE_UNKNOWN,
48 DEVICE_COMPUTER,
49 DEVICE_PHONE,
50 DEVICE_MODEM,
51 DEVICE_PERIPHERAL,
52 DEVICE_JOYSTICK,
53 DEVICE_GAMEPAD,
54 DEVICE_KEYBOARD,
55 DEVICE_MOUSE,
56 DEVICE_TABLET,
57 DEVICE_KEYBOARD_MOUSE_COMBO
58 };
59
60 // Interface for observing changes from bluetooth devices. 45 // Interface for observing changes from bluetooth devices.
61 class Observer { 46 class Observer {
bryeung 2012/09/07 18:35:57 this belongs in the interface
youngki 2012/09/13 18:05:02 Done.
62 public: 47 public:
63 virtual ~Observer() {} 48 virtual ~Observer() {}
64 49
65 // TODO(keybuk): add observers for pairing and connection. 50 // TODO(keybuk): add observers for pairing and connection.
66 }; 51 };
67 52
68 // Interface for negotiating pairing of bluetooth devices. 53 // Interface for negotiating pairing of bluetooth devices.
69 class PairingDelegate { 54 class PairingDelegate {
bryeung 2012/09/07 18:35:57 this belongs in the interface
youngki 2012/09/13 18:05:02 Done.
70 public: 55 public:
71 virtual ~PairingDelegate() {} 56 virtual ~PairingDelegate() {}
72 57
73 // This method will be called when the Bluetooth daemon requires a 58 // This method will be called when the Bluetooth daemon requires a
74 // PIN Code for authentication of the device |device|, the delegate should 59 // PIN Code for authentication of the device |device|, the delegate should
75 // obtain the code from the user and call SetPinCode() on the device to 60 // obtain the code from the user and call SetPinCode() on the device to
76 // provide it, or RejectPairing() or CancelPairing() to reject or cancel 61 // provide it, or RejectPairing() or CancelPairing() to reject or cancel
77 // the request. 62 // the request.
78 // 63 //
79 // PIN Codes are generally required for Bluetooth 2.0 and earlier devices 64 // PIN Codes are generally required for Bluetooth 2.0 and earlier devices
80 // for which there is no automatic pairing or special handling. 65 // for which there is no automatic pairing or special handling.
81 virtual void RequestPinCode(BluetoothDevice* device) = 0; 66 virtual void RequestPinCode(BluetoothDeviceDBus* device) = 0;
82 67
83 // This method will be called when the Bluetooth daemon requires a 68 // This method will be called when the Bluetooth daemon requires a
84 // Passkey for authentication of the device |device|, the delegate should 69 // Passkey for authentication of the device |device|, the delegate should
85 // obtain the passkey from the user (a numeric in the range 0-999999) and 70 // obtain the passkey from the user (a numeric in the range 0-999999) and
86 // call SetPasskey() on the device to provide it, or RejectPairing() or 71 // call SetPasskey() on the device to provide it, or RejectPairing() or
87 // CancelPairing() to reject or cancel the request. 72 // CancelPairing() to reject or cancel the request.
88 // 73 //
89 // Passkeys are generally required for Bluetooth 2.1 and later devices 74 // Passkeys are generally required for Bluetooth 2.1 and later devices
90 // which cannot provide input or display on their own, and don't accept 75 // which cannot provide input or display on their own, and don't accept
91 // passkey-less pairing. 76 // passkey-less pairing.
92 virtual void RequestPasskey(BluetoothDevice* device) = 0; 77 virtual void RequestPasskey(BluetoothDeviceDBus* device) = 0;
93 78
94 // This method will be called when the Bluetooth daemon requires that the 79 // This method will be called when the Bluetooth daemon requires that the
95 // user enter the PIN code |pincode| into the device |device| so that it 80 // user enter the PIN code |pincode| into the device |device| so that it
96 // may be authenticated. The DismissDisplayOrConfirm() method 81 // may be authenticated. The DismissDisplayOrConfirm() method
97 // will be called to dismiss the display once pairing is complete or 82 // will be called to dismiss the display once pairing is complete or
98 // cancelled. 83 // cancelled.
99 // 84 //
100 // This is used for Bluetooth 2.0 and earlier keyboard devices, the 85 // This is used for Bluetooth 2.0 and earlier keyboard devices, the
101 // |pincode| will always be a six-digit numeric in the range 000000-999999 86 // |pincode| will always be a six-digit numeric in the range 000000-999999
102 // for compatibilty with later specifications. 87 // for compatibilty with later specifications.
103 virtual void DisplayPinCode(BluetoothDevice* device, 88 virtual void DisplayPinCode(BluetoothDeviceDBus* device,
104 const std::string& pincode) = 0; 89 const std::string& pincode) = 0;
105 90
106 // This method will be called when the Bluetooth daemon requires that the 91 // This method will be called when the Bluetooth daemon requires that the
107 // user enter the Passkey |passkey| into the device |device| so that it 92 // user enter the Passkey |passkey| into the device |device| so that it
108 // may be authenticated. The DismissDisplayOrConfirm() method will be 93 // may be authenticated. The DismissDisplayOrConfirm() method will be
109 // called to dismiss the display once pairing is complete or cancelled. 94 // called to dismiss the display once pairing is complete or cancelled.
110 // 95 //
111 // This is used for Bluetooth 2.1 and later devices that support input 96 // This is used for Bluetooth 2.1 and later devices that support input
112 // but not display, such as keyboards. The Passkey is a numeric in the 97 // but not display, such as keyboards. The Passkey is a numeric in the
113 // range 0-999999 and should be always presented zero-padded to six 98 // range 0-999999 and should be always presented zero-padded to six
114 // digits. 99 // digits.
115 virtual void DisplayPasskey(BluetoothDevice* device, 100 virtual void DisplayPasskey(BluetoothDeviceDBus* device,
116 uint32 passkey) = 0; 101 uint32 passkey) = 0;
117 102
118 // This method will be called when the Bluetooth daemon requires that the 103 // This method will be called when the Bluetooth daemon requires that the
119 // user confirm that the Passkey |passkey| is displayed on the screen 104 // user confirm that the Passkey |passkey| is displayed on the screen
120 // of the device |device| so that it may be authenticated. The delegate 105 // of the device |device| so that it may be authenticated. The delegate
121 // should display to the user and ask for confirmation, then call 106 // should display to the user and ask for confirmation, then call
122 // ConfirmPairing() on the device to confirm, RejectPairing() on the device 107 // ConfirmPairing() on the device to confirm, RejectPairing() on the device
123 // to reject or CancelPairing() on the device to cancel authentication 108 // to reject or CancelPairing() on the device to cancel authentication
124 // for any other reason. 109 // for any other reason.
125 // 110 //
126 // This is used for Bluetooth 2.1 and later devices that support display, 111 // This is used for Bluetooth 2.1 and later devices that support display,
127 // such as other computers or phones. The Passkey is a numeric in the 112 // such as other computers or phones. The Passkey is a numeric in the
128 // range 0-999999 and should be always present zero-padded to six 113 // range 0-999999 and should be always present zero-padded to six
129 // digits. 114 // digits.
130 virtual void ConfirmPasskey(BluetoothDevice* device, 115 virtual void ConfirmPasskey(BluetoothDeviceDBus* device,
131 uint32 passkey) = 0; 116 uint32 passkey) = 0;
132 117
133 // This method will be called when any previous DisplayPinCode(), 118 // This method will be called when any previous DisplayPinCode(),
134 // DisplayPasskey() or ConfirmPasskey() request should be concluded 119 // DisplayPasskey() or ConfirmPasskey() request should be concluded
135 // and removed from the user. 120 // and removed from the user.
136 virtual void DismissDisplayOrConfirm() = 0; 121 virtual void DismissDisplayOrConfirm() = 0;
137 }; 122 };
138 123
139 virtual ~BluetoothDevice(); 124 virtual ~BluetoothDeviceDBus();
140 125
141 // Returns the Bluetooth of address the device. This should be used as 126 // Returns the Bluetooth of address the device. This should be used as
142 // a unique key to identify the device and copied where needed. 127 // a unique key to identify the device and copied where needed.
143 virtual const std::string& address() const; 128 virtual const std::string& address() const OVERRIDE;
144 129
145 // Returns the name of the device suitable for displaying, this may 130 // Returns the name of the device suitable for displaying, this may
146 // be a synthesied string containing the address and localized type name 131 // be a synthesied string containing the address and localized type name
147 // if the device has no obtained name. 132 // if the device has no obtained name.
148 virtual string16 GetName() const; 133 virtual string16 GetName() const OVERRIDE;
149
150 // Returns the type of the device, limited to those we support or are
151 // aware of, by decoding the bluetooth class information. The returned
152 // values are unique, and do not overlap, so DEVICE_KEYBOARD is not also
153 // DEVICE_PERIPHERAL.
154 DeviceType GetDeviceType() const;
155 134
156 // Returns a localized string containing the device's bluetooth address and 135 // Returns a localized string containing the device's bluetooth address and
157 // a device type for display when |name_| is empty. 136 // a device type for display when |name_| is empty.
158 string16 GetAddressWithLocalizedDeviceTypeName() const; 137 string16 GetAddressWithLocalizedDeviceTypeName() const;
159 138
160 // Indicates whether the class of this device is supported by Chrome OS. 139 // Indicates whether the class of this device is supported by Chrome OS.
161 bool IsSupported() const; 140 bool IsSupported() const;
162 141
163 // Indicates whether the device is paired to the adapter, whether or not 142 // Indicates whether the device is paired to the adapter, whether or not
164 // that pairing is permanent or temporary. 143 // that pairing is permanent or temporary.
165 virtual bool IsPaired() const; 144 virtual bool IsPaired() const OVERRIDE;
166 145
167 // Indicates whether the device is visible to the adapter, this is not 146 // Indicates whether the device is visible to the adapter, this is not
168 // mutually exclusive to being paired. 147 // mutually exclusive to being paired.
169 bool IsVisible() const { return visible_; } 148 bool IsVisible() const { return visible_; }
170 149
171 // Indicates whether the device is bonded to the adapter, bonding is 150 // Indicates whether the device is bonded to the adapter, bonding is
172 // formed by pairing and exchanging high-security link keys so that 151 // formed by pairing and exchanging high-security link keys so that
173 // connections may be encrypted. 152 // connections may be encrypted.
174 virtual bool IsBonded() const; 153 virtual bool IsBonded() const OVERRIDE;
175 154
176 // Indicates whether the device is currently connected to the adapter 155 // Indicates whether the device is currently connected to the adapter
177 // and at least one service available for use. 156 // and at least one service available for use.
178 virtual bool IsConnected() const; 157 virtual bool IsConnected() const OVERRIDE;
179 158
180 // Returns the services (as UUID strings) that this device provides. 159 // Returns the services (as UUID strings) that this device provides.
181 typedef std::vector<std::string> ServiceList; 160 typedef std::vector<std::string> ServiceList;
182 const ServiceList& GetServices() const { return service_uuids_; } 161 const ServiceList& GetServices() const { return service_uuids_; }
183 162
184 // The ErrorCallback is used for methods that can fail in which case it 163 // Returns the services (as BluetoothServiceRecordDBus objects) that this
185 // is called, in the success case the callback is simply not called. 164 // device provides.
186 typedef base::Callback<void()> ErrorCallback; 165 virtual void GetServiceRecords(const ServiceRecordsCallback& callback,
187 166 const ErrorCallback& error_callback) OVERRIDE;
188 // Returns the services (as BluetoothServiceRecord objects) that this device
189 // provides.
190 typedef ScopedVector<BluetoothServiceRecord> ServiceRecordList;
191 typedef base::Callback<void(const ServiceRecordList&)> ServiceRecordsCallback;
192 void GetServiceRecords(const ServiceRecordsCallback& callback,
193 const ErrorCallback& error_callback);
194 167
195 // Indicates whether this device provides the given service. |uuid| should 168 // Indicates whether this device provides the given service. |uuid| should
196 // be in canonical form (see bluetooth_utils::CanonicalUuid). 169 // be in canonical form (see bluetooth_utils::CanonicalUuid).
197 virtual bool ProvidesServiceWithUUID(const std::string& uuid) const; 170 virtual bool ProvidesServiceWithUUID(const std::string& uuid) const OVERRIDE;
198
199 // The ProvidesServiceCallback is used by ProvidesServiceWithName to indicate
200 // whether or not a matching service was found.
201 typedef base::Callback<void(bool)> ProvidesServiceCallback;
202 171
203 // Indicates whether this device provides the given service. 172 // Indicates whether this device provides the given service.
204 void ProvidesServiceWithName(const std::string& name, 173 virtual void ProvidesServiceWithName(const std::string& name,
205 const ProvidesServiceCallback& callback); 174 const ProvidesServiceCallback& callback)
175 OVERRIDE;
206 176
207 // Indicates whether the device is currently pairing and expecting a 177 // Indicates whether the device is currently pairing and expecting a
208 // PIN Code to be returned. 178 // PIN Code to be returned.
209 bool ExpectingPinCode() const { return !pincode_callback_.is_null(); } 179 bool ExpectingPinCode() const { return !pincode_callback_.is_null(); }
210 180
211 // Indicates whether the device is currently pairing and expecting a 181 // Indicates whether the device is currently pairing and expecting a
212 // Passkey to be returned. 182 // Passkey to be returned.
213 bool ExpectingPasskey() const { return !passkey_callback_.is_null(); } 183 bool ExpectingPasskey() const { return !passkey_callback_.is_null(); }
214 184
215 // Indicates whether the device is currently pairing and expecting 185 // Indicates whether the device is currently pairing and expecting
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
266 236
267 // Disconnects the device, terminating the low-level ACL connection 237 // Disconnects the device, terminating the low-level ACL connection
268 // and any application connections using it, and then discards link keys 238 // and any application connections using it, and then discards link keys
269 // and other pairing information. The device object remainds valid until 239 // and other pairing information. The device object remainds valid until
270 // returing from the calling function, after which it should be assumed to 240 // returing from the calling function, after which it should be assumed to
271 // have been deleted. If the request fails, |error_callback| will be called. 241 // have been deleted. If the request fails, |error_callback| will be called.
272 // There is no callback for success beause this object is often deleted 242 // There is no callback for success beause this object is often deleted
273 // before that callback would be called. 243 // before that callback would be called.
274 void Forget(const ErrorCallback& error_callback); 244 void Forget(const ErrorCallback& error_callback);
275 245
276 // SocketCallback is used by ConnectToService to return a BluetoothSocket
277 // to the caller, or NULL if there was an error. The socket will remain open
278 // until the last reference to the returned BluetoothSocket is released.
279 typedef base::Callback<void(scoped_refptr<BluetoothSocket>)> SocketCallback;
280
281 // Attempts to open a socket to a service matching |uuid| on this device. If 246 // Attempts to open a socket to a service matching |uuid| on this device. If
282 // the connection is successful, |callback| is called with a BluetoothSocket. 247 // the connection is successful, |callback| is called with a
248 // BluetoothSocketPosix.
283 // Otherwise |callback| is called with NULL. The socket is closed as soon as 249 // Otherwise |callback| is called with NULL. The socket is closed as soon as
284 // all references to the BluetoothSocket are released. Note that the 250 // all references to the BluetoothSocketPosix are released. Note that the
285 // BluetoothSocket object can outlive both this BluetoothDevice and the 251 // BluetoothSocketPosix object can outlive both this BluetoothDeviceDBus and
286 // BluetoothAdapter for this device. 252 // the BluetoothAdapterDBus for this device.
287 void ConnectToService(const std::string& service_uuid, 253 virtual void ConnectToService(const std::string& service_uuid,
288 const SocketCallback& callback); 254 const SocketCallback& callback) OVERRIDE;
289 255
290 // Sets the Out Of Band pairing data for this device to |data|. Exactly one 256 // Sets the Out Of Band pairing data for this device to |data|. Exactly one
291 // of |callback| or |error_callback| will be run. 257 // of |callback| or |error_callback| will be run.
292 virtual void SetOutOfBandPairingData( 258 virtual void SetOutOfBandPairingData(
293 const chromeos::BluetoothOutOfBandPairingData& data, 259 const chromeos::BluetoothOutOfBandPairingData& data,
294 const base::Closure& callback, 260 const base::Closure& callback,
295 const ErrorCallback& error_callback); 261 const ErrorCallback& error_callback) OVERRIDE;
296 262
297 // Clears the Out Of Band pairing data for this device. Exactly one of 263 // Clears the Out Of Band pairing data for this device. Exactly one of
298 // |callback| or |error_callback| will be run. 264 // |callback| or |error_callback| will be run.
299 virtual void ClearOutOfBandPairingData( 265 virtual void ClearOutOfBandPairingData(
300 const base::Closure& callback, 266 const base::Closure& callback,
301 const ErrorCallback& error_callback); 267 const ErrorCallback& error_callback) OVERRIDE;
302 268
303 private: 269 private:
304 friend class BluetoothAdapter; 270 // Possible values that may be returned by GetDeviceType(), representing
305 friend class MockBluetoothDevice; 271 // different types of bluetooth device that we support or are aware of
272 // decoded from the bluetooth class information.
273 enum DeviceType {
bryeung 2012/09/07 18:35:57 this belongs in the interface
youngki 2012/09/13 18:05:02 Done.
274 DEVICE_UNKNOWN,
275 DEVICE_COMPUTER,
276 DEVICE_PHONE,
277 DEVICE_MODEM,
278 DEVICE_PERIPHERAL,
279 DEVICE_JOYSTICK,
280 DEVICE_GAMEPAD,
281 DEVICE_KEYBOARD,
282 DEVICE_MOUSE,
283 DEVICE_TABLET,
284 DEVICE_KEYBOARD_MOUSE_COMBO
285 };
306 286
307 explicit BluetoothDevice(BluetoothAdapter* adapter); 287 friend class BluetoothAdapterDBus;
288 friend class MockBluetoothDeviceDBus;
289
290 explicit BluetoothDeviceDBus(BluetoothAdapterDBus* adapter);
291
292 // Returns the type of the device, limited to those we support or are
293 // aware of, by decoding the bluetooth class information. The returned
294 // values are unique, and do not overlap, so DEVICE_KEYBOARD is not also
295 // DEVICE_PERIPHERAL.
296 DeviceType GetDeviceType() const;
308 297
309 // Sets the dbus object path for the device to |object_path|, indicating 298 // Sets the dbus object path for the device to |object_path|, indicating
310 // that the device has gone from being discovered to paired or bonded. 299 // that the device has gone from being discovered to paired or bonded.
311 void SetObjectPath(const dbus::ObjectPath& object_path); 300 void SetObjectPath(const dbus::ObjectPath& object_path);
312 301
313 // Removes the dbus object path from the device, indicating that the 302 // Removes the dbus object path from the device, indicating that the
314 // device is no longer paired or bonded, but perhaps still visible. 303 // device is no longer paired or bonded, but perhaps still visible.
315 void RemoveObjectPath(); 304 void RemoveObjectPath();
316 305
317 // Sets whether the device is visible to the owning adapter to |visible|. 306 // Sets whether the device is visible to the owning adapter to |visible|.
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
395 const std::string& error_message); 384 const std::string& error_message);
396 385
397 // Called by BluetoothDeviceClient when a call to Disconnect() completes, 386 // Called by BluetoothDeviceClient when a call to Disconnect() completes,
398 // |success| indicates whether or not the request succeeded, |callback| and 387 // |success| indicates whether or not the request succeeded, |callback| and
399 // |error_callback| are the callbacks provided to Disconnect() and 388 // |error_callback| are the callbacks provided to Disconnect() and
400 // |device_path| is the device disconnected. 389 // |device_path| is the device disconnected.
401 void DisconnectCallback(const base::Closure& callback, 390 void DisconnectCallback(const base::Closure& callback,
402 const ErrorCallback& error_callback, 391 const ErrorCallback& error_callback,
403 const dbus::ObjectPath& device_path, bool success); 392 const dbus::ObjectPath& device_path, bool success);
404 393
405 // Called by BluetoothAdapterClient when a call to RemoveDevice() completes, 394 // Called by BluetoothAdapterClient when a call to RemoveDevice()
406 // |success| indicates whether or not the request succeeded, |error_callback| 395 // completes, |success| indicates whether or not the request succeeded,
407 // is the callback provided to Forget() and |adapter_path| is the d-bus 396 // |error_callback| is the callback provided to Forget() and |adapter_path| is
408 // object path of the adapter that performed the removal. 397 // the d-bus object path of the adapter that performed the removal.
409 void ForgetCallback(const ErrorCallback& error_callback, 398 void ForgetCallback(const ErrorCallback& error_callback,
410 const dbus::ObjectPath& adapter_path, bool success); 399 const dbus::ObjectPath& adapter_path, bool success);
411 400
412 // Called if the call to GetServiceRecords from ProvidesServiceWithName fails. 401 // Called if the call to GetServiceRecords from ProvidesServiceWithName fails.
413 void SearchServicesForNameErrorCallback( 402 void SearchServicesForNameErrorCallback(
414 const ProvidesServiceCallback& callback); 403 const ProvidesServiceCallback& callback);
415 404
416 // Called by GetServiceRecords with the list of BluetoothServiceRecords to 405 // Called by GetServiceRecords with the list of BluetoothServiceRecords to
417 // search for |name|. |callback| is the callback from 406 // search for |name|. |callback| is the callback from
418 // ProvidesServiceWithName. 407 // ProvidesServiceWithName.
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after
547 // their response (success, rejected or cancelled). 536 // their response (success, rejected or cancelled).
548 virtual void ConfirmModeChange(Mode mode, 537 virtual void ConfirmModeChange(Mode mode,
549 const ConfirmationCallback& callback) OVERRIDE; 538 const ConfirmationCallback& callback) OVERRIDE;
550 539
551 // BluetoothAgentServiceProvider::Delegate override. 540 // BluetoothAgentServiceProvider::Delegate override.
552 // 541 //
553 // This method will be called by the Bluetooth daemon to indicate that 542 // This method will be called by the Bluetooth daemon to indicate that
554 // the request failed before a reply was returned from the device. 543 // the request failed before a reply was returned from the device.
555 virtual void Cancel() OVERRIDE; 544 virtual void Cancel() OVERRIDE;
556 545
557 // Creates a new BluetoothDevice object bound to the adapter |adapter|. 546 // Creates a new BluetoothDeviceDBus object bound to the adapter |adapter|.
558 static BluetoothDevice* Create(BluetoothAdapter* adapter); 547 static BluetoothDeviceDBus* Create(BluetoothAdapterDBus* adapter);
559 548
560 // The adapter that owns this device instance. 549 // The adapter that owns this device instance.
561 BluetoothAdapter* adapter_; 550 BluetoothAdapterDBus* adapter_;
562 551
563 // The dbus object path of the device, will be empty if the device has only 552 // The dbus object path of the device, will be empty if the device has only
564 // been discovered and not yet paired with. 553 // been discovered and not yet paired with.
565 dbus::ObjectPath object_path_; 554 dbus::ObjectPath object_path_;
566 555
567 // The Bluetooth address of the device. 556 // The Bluetooth address of the device.
568 std::string address_; 557 std::string address_;
569 558
570 // The name of the device, as supplied by the remote device. 559 // The name of the device, as supplied by the remote device.
571 std::string name_; 560 std::string name_;
(...skipping 25 matching lines...) Expand all
597 // SetPinCode() and SetPasskey(). 586 // SetPinCode() and SetPasskey().
598 PinCodeCallback pincode_callback_; 587 PinCodeCallback pincode_callback_;
599 PasskeyCallback passkey_callback_; 588 PasskeyCallback passkey_callback_;
600 ConfirmationCallback confirmation_callback_; 589 ConfirmationCallback confirmation_callback_;
601 590
602 // Used to keep track of pending application connection requests. 591 // Used to keep track of pending application connection requests.
603 int connecting_applications_counter_; 592 int connecting_applications_counter_;
604 593
605 // Note: This should remain the last member so it'll be destroyed and 594 // Note: This should remain the last member so it'll be destroyed and
606 // invalidate its weak pointers before any other members are destroyed. 595 // invalidate its weak pointers before any other members are destroyed.
607 base::WeakPtrFactory<BluetoothDevice> weak_ptr_factory_; 596 base::WeakPtrFactory<BluetoothDeviceDBus> weak_ptr_factory_;
608 597
609 DISALLOW_COPY_AND_ASSIGN(BluetoothDevice); 598 DISALLOW_COPY_AND_ASSIGN(BluetoothDeviceDBus);
610 }; 599 };
611 600
612 } // namespace chromeos 601 } // namespace chromeos
613 602
614 #endif // CHROME_BROWSER_CHROMEOS_BLUETOOTH_BLUETOOTH_DEVICE_H_ 603 #endif // CHROME_BROWSER_CHROMEOS_BLUETOOTH_BLUETOOTH_DEVICE_DBUS_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698