Skip to content

Commit 10b5325

Browse files
Remove unnecessary invokeCommand overrides from MTRDevice_Concrete.
The one part that is not shared with the XPC implementation is _invokeCommandWithEndpointID:.... Everything else is just generic argument massaging and forwarding that can keep living in the base MTRDevice.
1 parent 07789d4 commit 10b5325

File tree

1 file changed

+0
-126
lines changed

1 file changed

+0
-126
lines changed

src/darwin/Framework/CHIP/MTRDevice_Concrete.mm

-126
Original file line numberDiff line numberDiff line change
@@ -2835,59 +2835,6 @@ - (void)writeAttributeWithEndpointID:(NSNumber *)endpointID
28352835
[_asyncWorkQueue enqueueWorkItem:workItem descriptionWithFormat:@"write %@ 0x%llx 0x%llx", endpointID, clusterID.unsignedLongLongValue, attributeID.unsignedLongLongValue];
28362836
}
28372837

2838-
- (void)invokeCommandWithEndpointID:(NSNumber *)endpointID
2839-
clusterID:(NSNumber *)clusterID
2840-
commandID:(NSNumber *)commandID
2841-
commandFields:(NSDictionary<NSString *, id> * _Nullable)commandFields
2842-
expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedValues
2843-
expectedValueInterval:(NSNumber * _Nullable)expectedValueInterval
2844-
queue:(dispatch_queue_t)queue
2845-
completion:(MTRDeviceResponseHandler)completion
2846-
{
2847-
if (commandFields == nil) {
2848-
commandFields = @{
2849-
MTRTypeKey : MTRStructureValueType,
2850-
MTRValueKey : @[],
2851-
};
2852-
}
2853-
2854-
[self invokeCommandWithEndpointID:endpointID
2855-
clusterID:clusterID
2856-
commandID:commandID
2857-
commandFields:commandFields
2858-
expectedValues:expectedValues
2859-
expectedValueInterval:expectedValueInterval
2860-
timedInvokeTimeout:nil
2861-
queue:queue
2862-
completion:completion];
2863-
}
2864-
2865-
- (void)invokeCommandWithEndpointID:(NSNumber *)endpointID
2866-
clusterID:(NSNumber *)clusterID
2867-
commandID:(NSNumber *)commandID
2868-
commandFields:(id)commandFields
2869-
expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedValues
2870-
expectedValueInterval:(NSNumber * _Nullable)expectedValueInterval
2871-
timedInvokeTimeout:(NSNumber * _Nullable)timeout
2872-
queue:(dispatch_queue_t)queue
2873-
completion:(MTRDeviceResponseHandler)completion
2874-
{
2875-
// We don't have a way to communicate a non-default invoke timeout
2876-
// here for now.
2877-
// TODO: https://github.com/project-chip/connectedhomeip/issues/24563
2878-
2879-
[self _invokeCommandWithEndpointID:endpointID
2880-
clusterID:clusterID
2881-
commandID:commandID
2882-
commandFields:commandFields
2883-
expectedValues:expectedValues
2884-
expectedValueInterval:expectedValueInterval
2885-
timedInvokeTimeout:timeout
2886-
serverSideProcessingTimeout:nil
2887-
queue:queue
2888-
completion:completion];
2889-
}
2890-
28912838
- (void)_invokeCommandWithEndpointID:(NSNumber *)endpointID
28922839
clusterID:(NSNumber *)clusterID
28932840
commandID:(NSNumber *)commandID
@@ -2985,58 +2932,6 @@ - (void)_invokeCommandWithEndpointID:(NSNumber *)endpointID
29852932
[_asyncWorkQueue enqueueWorkItem:workItem descriptionWithFormat:@"invoke %@ 0x%llx 0x%llx", endpointID, clusterID.unsignedLongLongValue, commandID.unsignedLongLongValue];
29862933
}
29872934

2988-
- (void)_invokeKnownCommandWithEndpointID:(NSNumber *)endpointID
2989-
clusterID:(NSNumber *)clusterID
2990-
commandID:(NSNumber *)commandID
2991-
commandPayload:(id)commandPayload
2992-
expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedValues
2993-
expectedValueInterval:(NSNumber * _Nullable)expectedValueInterval
2994-
timedInvokeTimeout:(NSNumber * _Nullable)timeout
2995-
serverSideProcessingTimeout:(NSNumber * _Nullable)serverSideProcessingTimeout
2996-
responseClass:(Class _Nullable)responseClass
2997-
queue:(dispatch_queue_t)queue
2998-
completion:(void (^)(id _Nullable response, NSError * _Nullable error))completion
2999-
{
3000-
if (![commandPayload respondsToSelector:@selector(_encodeAsDataValue:)]) {
3001-
dispatch_async(queue, ^{
3002-
completion(nil, [MTRError errorForCHIPErrorCode:CHIP_ERROR_INVALID_ARGUMENT]);
3003-
});
3004-
return;
3005-
}
3006-
3007-
NSError * encodingError;
3008-
auto * commandFields = [commandPayload _encodeAsDataValue:&encodingError];
3009-
if (commandFields == nil) {
3010-
dispatch_async(queue, ^{
3011-
completion(nil, encodingError);
3012-
});
3013-
return;
3014-
}
3015-
3016-
auto responseHandler = ^(NSArray<NSDictionary<NSString *, id> *> * _Nullable values, NSError * _Nullable error) {
3017-
id _Nullable response = nil;
3018-
if (error == nil) {
3019-
if (values.count != 1) {
3020-
error = [NSError errorWithDomain:MTRErrorDomain code:MTRErrorCodeSchemaMismatch userInfo:nil];
3021-
} else if (responseClass != nil) {
3022-
response = [[responseClass alloc] initWithResponseValue:values[0] error:&error];
3023-
}
3024-
}
3025-
completion(response, error);
3026-
};
3027-
3028-
[self _invokeCommandWithEndpointID:endpointID
3029-
clusterID:clusterID
3030-
commandID:commandID
3031-
commandFields:commandFields
3032-
expectedValues:expectedValues
3033-
expectedValueInterval:expectedValueInterval
3034-
timedInvokeTimeout:timeout
3035-
serverSideProcessingTimeout:serverSideProcessingTimeout
3036-
queue:queue
3037-
completion:responseHandler];
3038-
}
3039-
30402935
- (void)openCommissioningWindowWithSetupPasscode:(NSNumber *)setupPasscode
30412936
discriminator:(NSNumber *)discriminator
30422937
duration:(NSNumber *)duration
@@ -4072,27 +3967,6 @@ + (MTRDevice *)deviceWithNodeID:(uint64_t)nodeID deviceController:(MTRDeviceCont
40723967
return [self deviceWithNodeID:@(nodeID) controller:deviceController];
40733968
}
40743969

4075-
- (void)invokeCommandWithEndpointID:(NSNumber *)endpointID
4076-
clusterID:(NSNumber *)clusterID
4077-
commandID:(NSNumber *)commandID
4078-
commandFields:(id)commandFields
4079-
expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedValues
4080-
expectedValueInterval:(NSNumber * _Nullable)expectedValueInterval
4081-
timedInvokeTimeout:(NSNumber * _Nullable)timeout
4082-
clientQueue:(dispatch_queue_t)queue
4083-
completion:(MTRDeviceResponseHandler)completion
4084-
{
4085-
[self invokeCommandWithEndpointID:endpointID
4086-
clusterID:clusterID
4087-
commandID:commandID
4088-
commandFields:commandFields
4089-
expectedValues:expectedValues
4090-
expectedValueInterval:expectedValueInterval
4091-
timedInvokeTimeout:timeout
4092-
queue:queue
4093-
completion:completion];
4094-
}
4095-
40963970
@end
40973971

40983972
#pragma mark - SubscriptionCallback

0 commit comments

Comments
 (0)