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

Side by Side Diff: device/bluetooth/bluetooth_discovery_manager_mac.h

Issue 319183010: device/bluetooth: Clean up classic discovery in BluetoothAdapterMac. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Addressed comments Created 6 years, 6 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
(Empty)
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
3 // found in the LICENSE file.
4
5 #ifndef DEVICE_BLUETOOTH_BLUETOOTH_DISCOVERY_MANAGER_MAC_H_
6 #define DEVICE_BLUETOOTH_BLUETOOTH_DISCOVERY_MANAGER_MAC_H_
7
8 #include "base/macros.h"
9
10 @class IOBluetoothDevice;
11
12 namespace device {
13
14 // Class used by BluetoothAdapterMac to manage classic and LE device discovery.
15 // For Bluetooth Classic, this class is responsible for keeping device inquiry
16 // running if device discovery is initiated.
17 class BluetoothDiscoveryManagerMac {
18 public:
19 // Interface for being notified of events during a device discovery session.
20 class Observer {
21 public:
22 // Called when |manager| has found a device through classic device inquiry
23 // in the form of a IOBluetoothDevice.
24 virtual void DeviceFound(BluetoothDiscoveryManagerMac* manager,
25 IOBluetoothDevice* device) {}
26
27 // Called when device discovery is no longer running, due to either a call
28 // to BluetoothDiscoveryManagerMac::StopDiscovery or an unexpected reason,
29 // such as when a user disables the controller, in which case the value of
30 // |unexpected| will be true.
31 virtual void DiscoveryStopped(BluetoothDiscoveryManagerMac* manager,
32 bool unexpected) {}
33 };
34
35 virtual ~BluetoothDiscoveryManagerMac();
36
37 // Returns true, if discovery is currently being performed.
38 virtual bool IsDiscovering() const = 0;
39
40 // Initiates a discovery session. Returns true on success or if discovery
41 // is already running. Returns false on failure.
42 virtual bool StartDiscovery() = 0;
43
44 // Stops a discovery session. Returns true on success or if discovery is
45 // already not running. Returns false on failure.
46 virtual bool StopDiscovery() = 0;
47
48 // Creates a discovery manager for Bluetooth Classic device discovery with
49 // observer |observer|. Note that the life-time of |observer| should not
50 // end before that of the returned BluetoothDiscoveryManager, as that may
51 // lead to use after free errors.
52 static BluetoothDiscoveryManagerMac* CreateClassic(Observer* observer);
53
54 protected:
55 explicit BluetoothDiscoveryManagerMac(Observer* observer);
56
57 // Observer interested in notifications from us.
58 Observer* observer_;
59
60 private:
61 DISALLOW_COPY_AND_ASSIGN(BluetoothDiscoveryManagerMac);
62 };
63
64 } // namespace device
65
66 #endif // DEVICE_BLUETOOTH_BLUETOOTH_DISCOVERY_MANAGER_MAC_H_
OLDNEW
« no previous file with comments | « device/bluetooth/bluetooth_adapter_mac.mm ('k') | device/bluetooth/bluetooth_discovery_manager_mac.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698