diff --git a/examples/darwin-framework-tool/commands/pairing/DeviceControllerDelegateBridge.h b/examples/darwin-framework-tool/commands/pairing/DeviceControllerDelegateBridge.h index 7d62b1ba960fb4..334d2339536b15 100644 --- a/examples/darwin-framework-tool/commands/pairing/DeviceControllerDelegateBridge.h +++ b/examples/darwin-framework-tool/commands/pairing/DeviceControllerDelegateBridge.h @@ -20,13 +20,15 @@ #import +@class MTRDeviceController; + @interface CHIPToolDeviceControllerDelegate : NSObject @property PairingCommandBridge * commandBridge; @property chip::NodeId deviceID; @property MTRDeviceController * commissioner; @property MTRCommissioningParameters * params; -- (void)onCommissioningSessionEstablishmentDone:(NSError *)error; -- (void)onCommissioningComplete:(NSError *)error; +- (void)controller:(MTRDeviceController *)controller commissioningSessionEstablishmentDone:(NSError *)error; +- (void)controller:(MTRDeviceController *)controller commissioningComplete:(NSError *)error; @end diff --git a/examples/darwin-framework-tool/commands/pairing/DeviceControllerDelegateBridge.mm b/examples/darwin-framework-tool/commands/pairing/DeviceControllerDelegateBridge.mm index 0c42416e432683..9c0fff0984561e 100644 --- a/examples/darwin-framework-tool/commands/pairing/DeviceControllerDelegateBridge.mm +++ b/examples/darwin-framework-tool/commands/pairing/DeviceControllerDelegateBridge.mm @@ -44,7 +44,7 @@ - (void)onStatusUpdate:(MTRCommissioningStatus)status } } -- (void)onCommissioningSessionEstablishmentDone:(NSError *)error +- (void)controller:(MTRDeviceController *)controller commissioningSessionEstablishmentDone:(NSError *)error { if (error != nil) { ChipLogProgress(chipTool, "PASE establishment failed"); @@ -61,7 +61,7 @@ - (void)onCommissioningSessionEstablishmentDone:(NSError *)error } } -- (void)onCommissioningComplete:(NSError *)error +- (void)controller:(MTRDeviceController *)controller commissioningComplete:(NSError *)error { _commandBridge->SetCommandExitStatus(error, "Pairing Commissioning Complete"); } diff --git a/src/darwin/CHIPTool/CHIPTool/View Controllers/QRCode/QRCodeViewController.m b/src/darwin/CHIPTool/CHIPTool/View Controllers/QRCode/QRCodeViewController.m index 16b97f1169e371..7199f782d10bb4 100644 --- a/src/darwin/CHIPTool/CHIPTool/View Controllers/QRCode/QRCodeViewController.m +++ b/src/darwin/CHIPTool/CHIPTool/View Controllers/QRCode/QRCodeViewController.m @@ -490,7 +490,7 @@ - (void)setVendorIDOnAccessory } // MARK: MTRDeviceControllerDelegate -- (void)onCommissioningSessionEstablishmentDone:(NSError * _Nullable)error +- (void)controller:(MTRDeviceController *)controller commissioningSessionEstablishmentDone:(NSError * _Nullable)error { if (error != nil) { NSLog(@"Got pairing error back %@", error); @@ -683,7 +683,7 @@ - (void)commissionWithSSID:(NSString *)ssid password:(NSString *)password } } -- (void)onCommissioningComplete:(NSError * _Nullable)error +- (void)controller:(MTRDeviceController *)controller commissioningComplete:(NSError * _Nullable)error { if (error != nil) { NSLog(@"Error retrieving device informations over Mdns: %@", error); @@ -1105,7 +1105,7 @@ - (instancetype)initWithViewController:(QRCodeViewController *)viewController return self; } -- (void)deviceAttestation:(MTRDeviceController *)controller failedForDevice:(void *)device error:(NSError * _Nonnull)error +- (void)deviceAttestationFailedForController:(MTRDeviceController *)controller device:(void *)device error:(NSError * _Nonnull)error { dispatch_async(dispatch_get_main_queue(), ^{ UIAlertController * alertController = [UIAlertController diff --git a/src/darwin/Framework/CHIP/MTRDeviceAttestationDelegate.h b/src/darwin/Framework/CHIP/MTRDeviceAttestationDelegate.h index 9f30053a945ad0..331b35e549b7c9 100644 --- a/src/darwin/Framework/CHIP/MTRDeviceAttestationDelegate.h +++ b/src/darwin/Framework/CHIP/MTRDeviceAttestationDelegate.h @@ -39,10 +39,10 @@ NS_ASSUME_NONNULL_BEGIN /** * Only one of the following delegate callbacks should be implemented. * - * If -deviceAttestation:failedForDevice:error: is implemented, then it will be called when device + * If -deviceAttestationFailedForController:device:error: is implemented, then it will be called when device * attestation fails, and the client can decide to continue or stop the commissioning. * - * If -deviceAttestation:completedForDevice:attestationDeviceInfo:error: is implemented, then it + * If -deviceAttestationCompletedForController:device:attestationDeviceInfo:error: is implemented, then it * will always be called when device attestation completes. */ @@ -58,10 +58,10 @@ NS_ASSUME_NONNULL_BEGIN * @param attestationDeviceInfo Attestation information for the device * @param error NSError representing the error code on attestation failure. Nil if success. */ -- (void)deviceAttestation:(MTRDeviceController *)controller - completedForDevice:(void *)device - attestationDeviceInfo:(MTRDeviceAttestationDeviceInfo *)attestationDeviceInfo - error:(NSError * _Nullable)error; +- (void)deviceAttestationCompletedForController:(MTRDeviceController *)controller + device:(void *)device + attestationDeviceInfo:(MTRDeviceAttestationDeviceInfo *)attestationDeviceInfo + error:(NSError * _Nullable)error; /** * Notify the delegate when device attestation fails @@ -70,7 +70,9 @@ NS_ASSUME_NONNULL_BEGIN * @param device Handle of device being commissioned * @param error NSError representing the error code for the failure */ -- (void)deviceAttestation:(MTRDeviceController *)controller failedForDevice:(void *)device error:(NSError * _Nonnull)error; +- (void)deviceAttestationFailedForController:(MTRDeviceController *)controller + device:(void *)device + error:(NSError * _Nonnull)error; @end diff --git a/src/darwin/Framework/CHIP/MTRDeviceAttestationDelegateBridge.mm b/src/darwin/Framework/CHIP/MTRDeviceAttestationDelegateBridge.mm index 528148d3e0cf8d..7bc7f9314533b2 100644 --- a/src/darwin/Framework/CHIP/MTRDeviceAttestationDelegateBridge.mm +++ b/src/darwin/Framework/CHIP/MTRDeviceAttestationDelegateBridge.mm @@ -30,7 +30,8 @@ mResult = attestationResult; id strongDelegate = mDeviceAttestationDelegate; - if ([strongDelegate respondsToSelector:@selector(deviceAttestation:completedForDevice:attestationDeviceInfo:error:)]) { + if ([strongDelegate respondsToSelector:@selector(deviceAttestationCompletedForController: + device:attestationDeviceInfo:error:)]) { MTRDeviceController * strongController = mDeviceController; if (strongController) { NSData * dacData = AsData(info.dacDerBuffer()); @@ -43,18 +44,18 @@ NSError * error = (attestationResult == chip::Credentials::AttestationVerificationResult::kSuccess) ? nil : [MTRError errorForCHIPErrorCode:CHIP_ERROR_INTEGRITY_CHECK_FAILED]; - [strongDelegate deviceAttestation:mDeviceController - completedForDevice:device - attestationDeviceInfo:deviceInfo - error:error]; + [strongDelegate deviceAttestationCompletedForController:mDeviceController + device:device + attestationDeviceInfo:deviceInfo + error:error]; } } else if ((attestationResult != chip::Credentials::AttestationVerificationResult::kSuccess) && - [strongDelegate respondsToSelector:@selector(deviceAttestation:failedForDevice:error:)]) { + [strongDelegate respondsToSelector:@selector(deviceAttestationFailedForController:device:error:)]) { MTRDeviceController * strongController = mDeviceController; if (strongController) { NSError * error = [MTRError errorForCHIPErrorCode:CHIP_ERROR_INTEGRITY_CHECK_FAILED]; - [strongDelegate deviceAttestation:mDeviceController failedForDevice:device error:error]; + [strongDelegate deviceAttestationFailedForController:mDeviceController device:device error:error]; } } }); diff --git a/src/darwin/Framework/CHIP/MTRDeviceController.mm b/src/darwin/Framework/CHIP/MTRDeviceController.mm index e51c7f435d36c9..43c2d0e7084fdc 100644 --- a/src/darwin/Framework/CHIP/MTRDeviceController.mm +++ b/src/darwin/Framework/CHIP/MTRDeviceController.mm @@ -432,7 +432,7 @@ - (BOOL)commissionNodeWithID:(NSNumber *)nodeID } BOOL shouldWaitAfterDeviceAttestation = NO; if ([commissioningParams.deviceAttestationDelegate - respondsToSelector:@selector(deviceAttestation:completedForDevice:attestationDeviceInfo:error:)]) { + respondsToSelector:@selector(deviceAttestationCompletedForController:device:attestationDeviceInfo:error:)]) { shouldWaitAfterDeviceAttestation = YES; } _deviceAttestationDelegateBridge = new MTRDeviceAttestationDelegateBridge( @@ -536,7 +536,7 @@ - (void)removeDevice:(MTRDevice *)device - (void)setDeviceControllerDelegate:(id)delegate queue:(dispatch_queue_t)queue { dispatch_async(_chipWorkQueue, ^{ - self->_deviceControllerDelegateBridge->setDelegate(delegate, queue); + self->_deviceControllerDelegateBridge->setDelegate(self, delegate, queue); }); } diff --git a/src/darwin/Framework/CHIP/MTRDeviceControllerDelegate.h b/src/darwin/Framework/CHIP/MTRDeviceControllerDelegate.h index b6f7cdf4a72eac..5d7c81c2be43a4 100644 --- a/src/darwin/Framework/CHIP/MTRDeviceControllerDelegate.h +++ b/src/darwin/Framework/CHIP/MTRDeviceControllerDelegate.h @@ -26,6 +26,8 @@ typedef NS_ENUM(NSUInteger, MTRCommissioningStatus) { MTRCommissioningStatusDiscoveringMoreDevices = 3 }; +@class MTRDeviceController; + /** * The protocol definition for the MTRDeviceControllerDelegate. * @@ -36,18 +38,18 @@ typedef NS_ENUM(NSUInteger, MTRCommissioningStatus) { /** * Notify the delegate when commissioning status gets updated. */ -- (void)onStatusUpdate:(MTRCommissioningStatus)status; +- (void)controller:(MTRDeviceController *)controller statusUpdate:(MTRCommissioningStatus)status; /** * Notify the delegate when a commissioning session is established or the * establishment has errored out. */ -- (void)onCommissioningSessionEstablishmentDone:(NSError * _Nullable)error; +- (void)controller:(MTRDeviceController *)controller commissioningSessionEstablishmentDone:(NSError * _Nullable)error; /** * Notify the delegate when commissioning is completed. */ -- (void)onCommissioningComplete:(NSError * _Nullable)error; +- (void)controller:(MTRDeviceController *)controller commissioningComplete:(NSError * _Nullable)error; @end diff --git a/src/darwin/Framework/CHIP/MTRDeviceControllerDelegateBridge.h b/src/darwin/Framework/CHIP/MTRDeviceControllerDelegateBridge.h index 299e85b6a3b5ae..22d58ecd590795 100644 --- a/src/darwin/Framework/CHIP/MTRDeviceControllerDelegateBridge.h +++ b/src/darwin/Framework/CHIP/MTRDeviceControllerDelegateBridge.h @@ -22,13 +22,14 @@ NS_ASSUME_NONNULL_BEGIN -class MTRDeviceControllerDelegateBridge : public chip::Controller::DevicePairingDelegate -{ +@class MTRDeviceController; + +class MTRDeviceControllerDelegateBridge : public chip::Controller::DevicePairingDelegate { public: MTRDeviceControllerDelegateBridge(); ~MTRDeviceControllerDelegateBridge(); - void setDelegate(id delegate, dispatch_queue_t queue); + void setDelegate(MTRDeviceController * controller, id delegate, dispatch_queue_t queue); void OnStatusUpdate(chip::Controller::DevicePairingDelegate::Status status) override; @@ -39,6 +40,7 @@ class MTRDeviceControllerDelegateBridge : public chip::Controller::DevicePairing void OnCommissioningComplete(chip::NodeId deviceId, CHIP_ERROR error) override; private: + MTRDeviceController * _Nullable mController; _Nullable id mDelegate; _Nullable dispatch_queue_t mQueue; diff --git a/src/darwin/Framework/CHIP/MTRDeviceControllerDelegateBridge.mm b/src/darwin/Framework/CHIP/MTRDeviceControllerDelegateBridge.mm index f84a99e4d2664b..b871a08b4e5b43 100644 --- a/src/darwin/Framework/CHIP/MTRDeviceControllerDelegateBridge.mm +++ b/src/darwin/Framework/CHIP/MTRDeviceControllerDelegateBridge.mm @@ -16,6 +16,7 @@ */ #import "MTRDeviceControllerDelegateBridge.h" +#import "MTRDeviceController.h" #import "MTRError_Internal.h" MTRDeviceControllerDelegateBridge::MTRDeviceControllerDelegateBridge(void) @@ -25,12 +26,15 @@ MTRDeviceControllerDelegateBridge::~MTRDeviceControllerDelegateBridge(void) {} -void MTRDeviceControllerDelegateBridge::setDelegate(id delegate, dispatch_queue_t queue) +void MTRDeviceControllerDelegateBridge::setDelegate( + MTRDeviceController * controller, id delegate, dispatch_queue_t queue) { if (delegate && queue) { + mController = controller; mDelegate = delegate; mQueue = queue; } else { + mController = nil; mDelegate = nil; mQueue = nil; } @@ -58,11 +62,11 @@ NSLog(@"DeviceControllerDelegate status updated: %d", status); id strongDelegate = mDelegate; - if ([strongDelegate respondsToSelector:@selector(onStatusUpdate:)]) { + if ([strongDelegate respondsToSelector:@selector(controller:statusUpdate:)]) { if (strongDelegate && mQueue) { MTRCommissioningStatus commissioningStatus = MapStatus(status); dispatch_async(mQueue, ^{ - [strongDelegate onStatusUpdate:commissioningStatus]; + [strongDelegate controller:mController statusUpdate:commissioningStatus]; }); } } @@ -73,11 +77,11 @@ NSLog(@"DeviceControllerDelegate Pairing complete. Status %s", chip::ErrorStr(error)); id strongDelegate = mDelegate; - if ([strongDelegate respondsToSelector:@selector(onCommissioningSessionEstablishmentDone:)]) { + if ([strongDelegate respondsToSelector:@selector(controller:commissioningSessionEstablishmentDone:)]) { if (strongDelegate && mQueue) { dispatch_async(mQueue, ^{ NSError * nsError = [MTRError errorForCHIPErrorCode:error]; - [strongDelegate onCommissioningSessionEstablishmentDone:nsError]; + [strongDelegate controller:mController commissioningSessionEstablishmentDone:nsError]; }); } } @@ -95,11 +99,11 @@ NSLog(@"DeviceControllerDelegate Commissioning complete. NodeId %llu Status %s", nodeId, chip::ErrorStr(error)); id strongDelegate = mDelegate; - if ([strongDelegate respondsToSelector:@selector(onCommissioningComplete:)]) { + if ([strongDelegate respondsToSelector:@selector(controller:commissioningComplete:)]) { if (strongDelegate && mQueue) { dispatch_async(mQueue, ^{ NSError * nsError = [MTRError errorForCHIPErrorCode:error]; - [strongDelegate onCommissioningComplete:nsError]; + [strongDelegate controller:mController commissioningComplete:nsError]; }); } } diff --git a/src/darwin/Framework/CHIPTests/MTRDeviceTests.m b/src/darwin/Framework/CHIPTests/MTRDeviceTests.m index c52707337b0376..d051fd6c480e50 100644 --- a/src/darwin/Framework/CHIPTests/MTRDeviceTests.m +++ b/src/darwin/Framework/CHIPTests/MTRDeviceTests.m @@ -91,7 +91,7 @@ - (id)initWithExpectation:(XCTestExpectation *)expectation return self; } -- (void)onCommissioningSessionEstablishmentDone:(NSError *)error +- (void)controller:(MTRDeviceController *)controller commissioningSessionEstablishmentDone:(NSError *)error { XCTAssertEqual(error.code, 0); @@ -101,10 +101,10 @@ - (void)onCommissioningSessionEstablishmentDone:(NSError *)error error:&commissionError]; XCTAssertNil(commissionError); - // Keep waiting for onCommissioningComplete + // Keep waiting for controller:MTRXPCListenerSampleTests.mcommissioningComplete } -- (void)onCommissioningComplete:(NSError *)error +- (void)controller:(MTRDeviceController *)controller commissioningComplete:(NSError *)error { XCTAssertEqual(error.code, 0); [_expectation fulfill]; diff --git a/src/darwin/Framework/CHIPTests/MTRXPCListenerSampleTests.m b/src/darwin/Framework/CHIPTests/MTRXPCListenerSampleTests.m index 0f53828a648971..905295c13b112a 100644 --- a/src/darwin/Framework/CHIPTests/MTRXPCListenerSampleTests.m +++ b/src/darwin/Framework/CHIPTests/MTRXPCListenerSampleTests.m @@ -401,7 +401,7 @@ - (id)initWithExpectation:(XCTestExpectation *)expectation return self; } -- (void)onCommissioningSessionEstablishmentDone:(NSError *)error +- (void)controller:(MTRDeviceController *)controller commissioningSessionEstablishmentDone:(NSError *)error { XCTAssertEqual(error.code, 0); NSError * commissionError = nil; @@ -410,10 +410,10 @@ - (void)onCommissioningSessionEstablishmentDone:(NSError *)error error:&commissionError]; XCTAssertNil(commissionError); - // Keep waiting for onCommissioningComplete + // Keep waiting for controller:commissioningComplete } -- (void)onCommissioningComplete:(NSError *)error +- (void)controller:(MTRDeviceController *)controller commissioningComplete:(NSError *)error { XCTAssertEqual(error.code, 0); [_expectation fulfill];