Chromium Code Reviews| OLD | NEW |
|---|---|
| (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_MAC_DISCOVERY_MANAGER_H_ | |
| 6 #define DEVICE_BLUETOOTH_BLUETOOTH_MAC_DISCOVERY_MANAGER_H_ | |
| 7 | |
| 8 #include "base/observer_list.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 BluetoothMacDiscoveryManager { | |
| 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(BluetoothMacDiscoveryManager* manager, | |
| 25 IOBluetoothDevice* device) {} | |
| 26 | |
| 27 // Called when device discovery is no longer running, due to either a call | |
| 28 // too BluetoothMacDiscoveryManager::StopDiscovery or an unexpected reason, | |
|
Ilya Sherman
2014/06/10 01:10:59
nit: "too" -> "to"
armansito
2014/06/10 21:56:50
Done.
| |
| 29 // such as when a user disables the controller, in which case the value of | |
| 30 // |unexpected| will be true. | |
| 31 virtual void DiscoveryStopped(BluetoothMacDiscoveryManager* manager, | |
| 32 bool unexpected) {} | |
| 33 }; | |
| 34 | |
| 35 virtual ~BluetoothMacDiscoveryManager(); | |
| 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. | |
|
Ilya Sherman
2014/06/10 01:10:59
nit: It visually looks like this comment applies t
armansito
2014/06/10 21:56:50
Done.
| |
| 42 virtual bool StartDiscovery() = 0; | |
| 43 virtual bool StopDiscovery() = 0; | |
| 44 | |
| 45 // Add and remove observers. | |
| 46 void AddObserver(Observer* observer); | |
| 47 void RemoveObserver(Observer* observer); | |
| 48 | |
| 49 // Creates a discovery manager for Bluetooth Classic device discovery. | |
| 50 static BluetoothMacDiscoveryManager* CreateClassic(); | |
| 51 | |
| 52 protected: | |
| 53 BluetoothMacDiscoveryManager(); | |
| 54 | |
| 55 // List of observers interested in notifications from us. | |
| 56 ObserverList<Observer> observers_; | |
|
Ilya Sherman
2014/06/10 01:10:59
Do we really need a list of observers, or can we j
armansito
2014/06/10 21:56:50
We can have a single observer, certainly. This jus
Ilya Sherman
2014/06/10 23:23:01
I won't insist, but IMO it's better to avoid being
armansito
2014/06/13 02:14:53
Done.
| |
| 57 | |
| 58 private: | |
| 59 DISALLOW_COPY_AND_ASSIGN(BluetoothMacDiscoveryManager); | |
| 60 }; | |
| 61 | |
| 62 } // namespace device | |
| 63 | |
| 64 #endif // DEVICE_BLUETOOTH_BLUETOOTH_MAC_DISCOVERY_MANAGER_H_ | |
| OLD | NEW |