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

Unified Diff: device/bluetooth/bluetooth_low_energy_discovery_manager_mac.mm

Issue 1226133006: Move CBCentralManager from the Discovery Manager to Adapter (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@adddevs
Patch Set: comment edit Created 5 years, 5 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « device/bluetooth/bluetooth_low_energy_discovery_manager_mac.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: device/bluetooth/bluetooth_low_energy_discovery_manager_mac.mm
diff --git a/device/bluetooth/bluetooth_low_energy_discovery_manager_mac.mm b/device/bluetooth/bluetooth_low_energy_discovery_manager_mac.mm
index 4c6bf2e5ccade407da7faf013c87416e285d4633..ceab7924a1246b5fbb9442b4077c07d386ff474a 100644
--- a/device/bluetooth/bluetooth_low_energy_discovery_manager_mac.mm
+++ b/device/bluetooth/bluetooth_low_energy_discovery_manager_mac.mm
@@ -11,74 +11,8 @@
#include "device/bluetooth/bluetooth_adapter_mac.h"
#include "device/bluetooth/bluetooth_low_energy_device_mac.h"
-using device::BluetoothLowEnergyDeviceMac;
-using device::BluetoothLowEnergyDiscoveryManagerMac;
-using device::BluetoothLowEnergyDiscoveryManagerMacDelegate;
-
namespace device {
-// This class is a helper to call some protected methods in
-// BluetoothLowEnergyDiscoveryManagerMac.
-class BluetoothLowEnergyDiscoveryManagerMacDelegate {
- public:
- BluetoothLowEnergyDiscoveryManagerMacDelegate(
- BluetoothLowEnergyDiscoveryManagerMac* manager)
- : manager_(manager) {}
-
- virtual ~BluetoothLowEnergyDiscoveryManagerMacDelegate() {}
-
- virtual void DiscoveredPeripheral(CBPeripheral* peripheral,
- NSDictionary* advertisementData,
- int rssi) {
- manager_->DiscoveredPeripheral(peripheral, advertisementData, rssi);
- }
-
- virtual void TryStartDiscovery() { manager_->TryStartDiscovery(); }
-
- private:
- BluetoothLowEnergyDiscoveryManagerMac* manager_;
-};
-
-} // namespace device
-
-// This class will serve as the Objective-C delegate of CBCentralManager.
-@interface BluetoothLowEnergyDiscoveryManagerMacBridge
- : NSObject<CBCentralManagerDelegate> {
- BluetoothLowEnergyDiscoveryManagerMac* manager_;
- scoped_ptr<BluetoothLowEnergyDiscoveryManagerMacDelegate> delegate_;
-}
-
-- (id)initWithManager:(BluetoothLowEnergyDiscoveryManagerMac*)manager;
-
-@end
-
-@implementation BluetoothLowEnergyDiscoveryManagerMacBridge
-
-- (id)initWithManager:(BluetoothLowEnergyDiscoveryManagerMac*)manager {
- if ((self = [super init])) {
- manager_ = manager;
- delegate_.reset(
- new BluetoothLowEnergyDiscoveryManagerMacDelegate(manager_));
- }
- return self;
-}
-
-- (void)centralManager:(CBCentralManager*)central
- didDiscoverPeripheral:(CBPeripheral*)peripheral
- advertisementData:(NSDictionary*)advertisementData
- RSSI:(NSNumber*)RSSI {
- // Notifies the discovery of a device.
- delegate_->DiscoveredPeripheral(peripheral, advertisementData,
- [RSSI intValue]);
-}
-
-- (void)centralManagerDidUpdateState:(CBCentralManager*)central {
- // Notifies when the powered state of the central manager changed.
- delegate_->TryStartDiscovery();
-}
-
-@end
-
BluetoothLowEnergyDiscoveryManagerMac::
~BluetoothLowEnergyDiscoveryManagerMac() {
}
@@ -105,7 +39,8 @@ void BluetoothLowEnergyDiscoveryManagerMac::TryStartDiscovery() {
}
// Can only start if the bluetooth power is turned on.
- if ([manager_ state] != CBCentralManagerStatePoweredOn) {
+ if (!central_manager_ ||
+ [central_manager_ state] != CBCentralManagerStatePoweredOn) {
return;
}
@@ -122,17 +57,22 @@ void BluetoothLowEnergyDiscoveryManagerMac::TryStartDiscovery() {
}
};
- [manager_ scanForPeripheralsWithServices:services options:nil];
+ [central_manager_ scanForPeripheralsWithServices:services options:nil];
pending_ = false;
}
void BluetoothLowEnergyDiscoveryManagerMac::StopDiscovery() {
if (discovering_ && !pending_) {
- [manager_ stopScan];
+ [central_manager_ stopScan];
}
discovering_ = false;
}
+void BluetoothLowEnergyDiscoveryManagerMac::SetCentralManager(
+ CBCentralManager* central_manager) {
+ central_manager_ = central_manager;
+}
+
void BluetoothLowEnergyDiscoveryManagerMac::DiscoveredPeripheral(
CBPeripheral* peripheral,
NSDictionary* advertisementData,
@@ -149,17 +89,7 @@ BluetoothLowEnergyDiscoveryManagerMac::BluetoothLowEnergyDiscoveryManagerMac(
Observer* observer)
: observer_(observer) {
DCHECK(BluetoothAdapterMac::IsLowEnergyAvailable());
- bridge_.reset([[BluetoothLowEnergyDiscoveryManagerMacBridge alloc]
- initWithManager:this]);
- Class aClass = NSClassFromString(@"CBCentralManager");
- manager_.reset([[aClass alloc] initWithDelegate:bridge_
- queue:dispatch_get_main_queue()]);
discovering_ = false;
}
-void BluetoothLowEnergyDiscoveryManagerMac::SetManagerForTesting(
- CBCentralManager* manager) {
- DCHECK(BluetoothAdapterMac::IsLowEnergyAvailable());
- [manager performSelector:@selector(setDelegate:) withObject:bridge_];
- manager_.reset(manager);
-}
+} // namespace device
« no previous file with comments | « device/bluetooth/bluetooth_low_energy_discovery_manager_mac.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698