| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 #include "device/bluetooth/test/mock_bluetooth_cbperipheral_mac.h" | 5 #include "device/bluetooth/test/mock_bluetooth_cbperipheral_mac.h" |
| 6 | 6 |
| 7 #include "base/mac/foundation_util.h" | 7 #include "base/mac/foundation_util.h" |
| 8 #include "base/mac/scoped_nsobject.h" | 8 #include "base/mac/scoped_nsobject.h" |
| 9 #include "device/bluetooth/test/bluetooth_test_mac.h" | 9 #include "device/bluetooth/test/bluetooth_test_mac.h" |
| 10 #include "device/bluetooth/test/mock_bluetooth_cbservice_mac.h" | 10 #include "device/bluetooth/test/mock_bluetooth_cbservice_mac.h" |
| (...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 77 _state = state; | 77 _state = state; |
| 78 if (_state == CBPeripheralStateDisconnected) { | 78 if (_state == CBPeripheralStateDisconnected) { |
| 79 _services.reset(); | 79 _services.reset(); |
| 80 } | 80 } |
| 81 } | 81 } |
| 82 | 82 |
| 83 - (void)discoverServices:(NSArray*)serviceUUIDs { | 83 - (void)discoverServices:(NSArray*)serviceUUIDs { |
| 84 if (_bluetoothTestMac) { | 84 if (_bluetoothTestMac) { |
| 85 _bluetoothTestMac->OnFakeBluetoothServiceDiscovery(); | 85 _bluetoothTestMac->OnFakeBluetoothServiceDiscovery(); |
| 86 } | 86 } |
| 87 [_delegate peripheral:self.peripheral didDiscoverServices:nil]; |
| 88 } |
| 89 |
| 90 - (void)discoverCharacteristics:(NSArray*)characteristics |
| 91 forService:(CBService*)service { |
| 87 } | 92 } |
| 88 | 93 |
| 89 - (void)removeAllServices { | 94 - (void)removeAllServices { |
| 90 [_services.get() removeAllObjects]; | 95 [_services.get() removeAllObjects]; |
| 91 } | 96 } |
| 92 | 97 |
| 93 - (void)addServices:(NSArray*)services { | 98 - (void)addServices:(NSArray*)services { |
| 94 if (!_services.get()) { | 99 if (!_services.get()) { |
| 95 _services.reset([[NSMutableArray alloc] init]); | 100 _services.reset([[NSMutableArray alloc] init]); |
| 96 } | 101 } |
| 97 for (CBUUID* uuid in services) { | 102 for (CBUUID* uuid in services) { |
| 98 base::scoped_nsobject<MockCBService> service( | 103 base::scoped_nsobject<MockCBService> service([[MockCBService alloc] |
| 99 [[MockCBService alloc] initWithCBUUID:uuid primary:YES]); | 104 initWithPeripheral:self.peripheral |
| 105 CBUUID:uuid |
| 106 primary:YES]); |
| 100 [_services.get() addObject:service.get().service]; | 107 [_services.get() addObject:service.get().service]; |
| 101 } | 108 } |
| 102 } | 109 } |
| 103 | 110 |
| 104 - (void)didDiscoverServicesWithError:(NSError*)error { | 111 - (void)didDiscoverServicesWithError:(NSError*)error { |
| 105 [_delegate peripheral:self.peripheral didDiscoverServices:error]; | 112 [_delegate peripheral:self.peripheral didDiscoverServices:error]; |
| 106 } | 113 } |
| 107 | 114 |
| 108 - (void)removeService:(CBService*)service { | 115 - (void)removeService:(CBService*)service { |
| 109 base::scoped_nsobject<CBService> serviceToRemove(service, | 116 base::scoped_nsobject<CBService> serviceToRemove(service, |
| 110 base::scoped_policy::RETAIN); | 117 base::scoped_policy::RETAIN); |
| 111 DCHECK(serviceToRemove); | 118 DCHECK(serviceToRemove); |
| 112 [_services.get() removeObject:serviceToRemove]; | 119 [_services.get() removeObject:serviceToRemove]; |
| 120 [self didModifyServices:@[ serviceToRemove ]]; |
| 121 } |
| 122 |
| 123 - (void)didDiscoverCharactericsForAllServices { |
| 124 for (CBService* service in _services.get()) { |
| 125 [_delegate peripheral:self.peripheral |
| 126 didDiscoverCharacteristicsForService:service |
| 127 error:nil]; |
| 128 } |
| 129 } |
| 130 |
| 131 - (void)didModifyServices:(NSArray*)invalidatedServices { |
| 113 // -[CBPeripheralDelegate peripheral:didModifyServices:] is only available | 132 // -[CBPeripheralDelegate peripheral:didModifyServices:] is only available |
| 114 // with 10.9. It is safe to call this method (even if chrome is running on | 133 // with 10.9. It is safe to call this method (even if chrome is running on |
| 115 // 10.8) since WebBluetooth is enabled only with 10.10. | 134 // 10.8) since WebBluetooth is enabled only with 10.10. |
| 116 DCHECK( | 135 DCHECK( |
| 117 [_delegate respondsToSelector:@selector(peripheral:didModifyServices:)]); | 136 [_delegate respondsToSelector:@selector(peripheral:didModifyServices:)]); |
| 118 #pragma clang diagnostic push | 137 #pragma clang diagnostic push |
| 119 #pragma clang diagnostic ignored "-Wpartial-availability" | 138 #pragma clang diagnostic ignored "-Wpartial-availability" |
| 120 [_delegate peripheral:self.peripheral didModifyServices:@[ serviceToRemove ]]; | 139 [_delegate peripheral:self.peripheral didModifyServices:invalidatedServices]; |
| 121 #pragma clang diagnostic pop | 140 #pragma clang diagnostic pop |
| 122 } | 141 } |
| 123 | 142 |
| 124 - (NSUUID*)identifier { | 143 - (NSUUID*)identifier { |
| 125 return _identifier.get(); | 144 return _identifier.get(); |
| 126 } | 145 } |
| 127 | 146 |
| 128 - (NSString*)name { | 147 - (NSString*)name { |
| 129 return _name.get(); | 148 return _name.get(); |
| 130 } | 149 } |
| 131 | 150 |
| 132 - (NSArray*)services { | 151 - (NSArray*)services { |
| 133 return _services.get(); | 152 return _services.get(); |
| 134 } | 153 } |
| 135 | 154 |
| 136 - (CBPeripheral*)peripheral { | 155 - (CBPeripheral*)peripheral { |
| 137 return ObjCCast<CBPeripheral>(self); | 156 return ObjCCast<CBPeripheral>(self); |
| 138 } | 157 } |
| 139 | 158 |
| 140 @end | 159 @end |
| OLD | NEW |