OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 DEVICE_BLUETOOTH_BLUETOOTH_DISCOVERY_SESSION_H_ | 5 #ifndef DEVICE_BLUETOOTH_BLUETOOTH_DISCOVERY_SESSION_H_ |
6 #define DEVICE_BLUETOOTH_BLUETOOTH_DISCOVERY_SESSION_H_ | 6 #define DEVICE_BLUETOOTH_BLUETOOTH_DISCOVERY_SESSION_H_ |
7 | 7 |
8 #include "base/callback.h" | 8 #include "base/callback.h" |
9 #include "base/memory/ref_counted.h" | 9 #include "base/memory/ref_counted.h" |
10 #include "base/memory/weak_ptr.h" | 10 #include "base/memory/weak_ptr.h" |
| 11 #include "device/bluetooth/bluetooth_export.h" |
11 | 12 |
12 namespace device { | 13 namespace device { |
13 | 14 |
14 class BluetoothAdapter; | 15 class BluetoothAdapter; |
15 | 16 |
16 // BluetoothDiscoverySession represents a current active or inactive device | 17 // BluetoothDiscoverySession represents a current active or inactive device |
17 // discovery session. Instances of this class are obtained by calling | 18 // discovery session. Instances of this class are obtained by calling |
18 // BluetoothAdapter::StartDiscoverySession. The Bluetooth adapter will be | 19 // BluetoothAdapter::StartDiscoverySession. The Bluetooth adapter will be |
19 // constantly searching for nearby devices, as long as at least one instance | 20 // constantly searching for nearby devices, as long as at least one instance |
20 // of an active BluetoothDiscoverySession exists. A BluetoothDiscoverySession is | 21 // of an active BluetoothDiscoverySession exists. A BluetoothDiscoverySession is |
21 // considered active, as long as the adapter is discovering AND the owner of the | 22 // considered active, as long as the adapter is discovering AND the owner of the |
22 // instance has not called BluetoothDiscoverySession::Stop. A | 23 // instance has not called BluetoothDiscoverySession::Stop. A |
23 // BluetoothDiscoverySession might unexpectedly become inactive, if the adapter | 24 // BluetoothDiscoverySession might unexpectedly become inactive, if the adapter |
24 // unexpectedly stops discovery. Users can implement the | 25 // unexpectedly stops discovery. Users can implement the |
25 // AdapterDiscoveringChanged method of the BluetoothAdapter::Observer interface | 26 // AdapterDiscoveringChanged method of the BluetoothAdapter::Observer interface |
26 // to be notified of such a change and promptly request a new | 27 // to be notified of such a change and promptly request a new |
27 // BluetoothDiscoverySession if their existing sessions have become inactive. | 28 // BluetoothDiscoverySession if their existing sessions have become inactive. |
28 class BluetoothDiscoverySession { | 29 class DEVICE_BLUETOOTH_EXPORT BluetoothDiscoverySession { |
29 public: | 30 public: |
30 // The ErrorCallback is used by methods to asynchronously report errors. | 31 // The ErrorCallback is used by methods to asynchronously report errors. |
31 typedef base::Closure ErrorCallback; | 32 typedef base::Closure ErrorCallback; |
32 | 33 |
33 // Destructor automatically terminates the discovery session. If this | 34 // Destructor automatically terminates the discovery session. If this |
34 // results in a call to the underlying system to stop device discovery | 35 // results in a call to the underlying system to stop device discovery |
35 // (i.e. this instance represents the last active discovery session), | 36 // (i.e. this instance represents the last active discovery session), |
36 // the call may not always succeed. To be notified of such failures, | 37 // the call may not always succeed. To be notified of such failures, |
37 // users are highly encouraged to call BluetoothDiscoverySession::Stop, | 38 // users are highly encouraged to call BluetoothDiscoverySession::Stop, |
38 // instead of relying on the destructor. | 39 // instead of relying on the destructor. |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
80 // Note: This should remain the last member so it'll be destroyed and | 81 // Note: This should remain the last member so it'll be destroyed and |
81 // invalidate its weak pointers before any other members are destroyed. | 82 // invalidate its weak pointers before any other members are destroyed. |
82 base::WeakPtrFactory<BluetoothDiscoverySession> weak_ptr_factory_; | 83 base::WeakPtrFactory<BluetoothDiscoverySession> weak_ptr_factory_; |
83 | 84 |
84 DISALLOW_COPY_AND_ASSIGN(BluetoothDiscoverySession); | 85 DISALLOW_COPY_AND_ASSIGN(BluetoothDiscoverySession); |
85 }; | 86 }; |
86 | 87 |
87 } // namespace device | 88 } // namespace device |
88 | 89 |
89 #endif // DEVICE_BLUETOOTH_BLUETOOTH_DISCOVERY_SESSION_H_ | 90 #endif // DEVICE_BLUETOOTH_BLUETOOTH_DISCOVERY_SESSION_H_ |
OLD | NEW |