Skip to content

Commit 339274a

Browse files
authored
[Darwin] XPC invoke should implement bottom-most method (project-chip#35159)
* [Darwin] XPC invoke should implement bottom-most method * Restyled fix
1 parent c1403a4 commit 339274a

File tree

3 files changed

+15
-11
lines changed

3 files changed

+15
-11
lines changed

src/darwin/Framework/CHIP/MTRDeviceController_XPC.mm

+1-1
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ - (NSXPCInterface *)_interfaceForServerProtocol
5252
]];
5353

5454
[interface setClasses:allowedClasses
55-
forSelector:@selector(deviceController:nodeID:invokeCommandWithEndpointID:clusterID:commandID:commandFields:expectedValues:expectedValueInterval:timedInvokeTimeout:completion:)
55+
forSelector:@selector(deviceController:nodeID:invokeCommandWithEndpointID:clusterID:commandID:commandFields:expectedValues:expectedValueInterval:timedInvokeTimeout:serverSideProcessingTimeout:completion:)
5656
argumentIndex:0
5757
ofReply:YES];
5858
return interface;

src/darwin/Framework/CHIP/MTRDevice_XPC.mm

+12-9
Original file line numberDiff line numberDiff line change
@@ -194,18 +194,20 @@ - (oneway void)deviceConfigurationChanged:(NSNumber *)nodeID
194194
: expectedValueInterval timedWriteTimeout
195195
: timeout)
196196

197-
- (void)invokeCommandWithEndpointID:(NSNumber *)endpointID
198-
clusterID:(NSNumber *)clusterID
199-
commandID:(NSNumber *)commandID
200-
commandFields:(id)commandFields
201-
expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedValues
202-
expectedValueInterval:(NSNumber * _Nullable)expectedValueInterval
203-
timedInvokeTimeout:(NSNumber * _Nullable)timeout
204-
queue:(dispatch_queue_t)queue
205-
completion:(MTRDeviceResponseHandler)completion
197+
- (void)_invokeCommandWithEndpointID:(NSNumber *)endpointID
198+
clusterID:(NSNumber *)clusterID
199+
commandID:(NSNumber *)commandID
200+
commandFields:(id)commandFields
201+
expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedValues
202+
expectedValueInterval:(NSNumber * _Nullable)expectedValueInterval
203+
timedInvokeTimeout:(NSNumber * _Nullable)timeout
204+
serverSideProcessingTimeout:(NSNumber * _Nullable)serverSideProcessingTimeout
205+
queue:(dispatch_queue_t)queue
206+
completion:(MTRDeviceResponseHandler)completion
206207
{
207208
NSXPCConnection * xpcConnection = [(MTRDeviceController_XPC *) [self deviceController] xpcConnection];
208209

210+
// TODO: use asynchronous XPC and register a block with controller to call for this transaction
209211
[[xpcConnection synchronousRemoteObjectProxyWithErrorHandler:^(NSError * _Nonnull error) {
210212
MTR_LOG_ERROR("Error: %@", error);
211213
}] deviceController:[[self deviceController] uniqueIdentifier]
@@ -217,6 +219,7 @@ - (void)invokeCommandWithEndpointID:(NSNumber *)endpointID
217219
expectedValues:expectedValues
218220
expectedValueInterval:expectedValueInterval
219221
timedInvokeTimeout:timeout
222+
serverSideProcessingTimeout:serverSideProcessingTimeout
220223
completion:completion];
221224
}
222225

src/darwin/Framework/CHIP/XPC Protocol/MTRXPCServerProtocol.h

+2-1
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,8 @@ MTR_NEWLY_AVAILABLE
2929
- (oneway void)deviceController:(NSUUID *)controller nodeID:(NSNumber *)nodeID readAttributeWithEndpointID:(NSNumber *)endpointID clusterID:(NSNumber *)clusterID attributeID:(NSNumber *)attributeID params:(MTRReadParams * _Nullable)params withReply:(void (^)(NSDictionary<NSString *, id> * _Nullable))reply;
3030
- (oneway void)deviceController:(NSUUID *)controller nodeID:(NSNumber *)nodeID writeAttributeWithEndpointID:(NSNumber *)endpointID clusterID:(NSNumber *)clusterID attributeID:(NSNumber *)attributeID value:(id _Nullable)value expectedValueInterval:(NSNumber * _Nullable)expectedValueInterval timedWriteTimeout:(NSNumber * _Nullable)timeout;
3131

32-
- (oneway void)deviceController:(NSUUID *)controller nodeID:(NSNumber *)nodeID invokeCommandWithEndpointID:(NSNumber *)endpointID clusterID:(NSNumber *)clusterID commandID:(NSNumber *)commandID commandFields:(id)commandFields expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedValues expectedValueInterval:(NSNumber * _Nullable)expectedValueInterval timedInvokeTimeout:(NSNumber * _Nullable)timeout completion:(MTRDeviceResponseHandler)completion;
32+
- (oneway void)deviceController:(NSUUID *)controller nodeID:(NSNumber *)nodeID invokeCommandWithEndpointID:(NSNumber *)endpointID clusterID:(NSNumber *)clusterID commandID:(NSNumber *)commandID commandFields:(id)commandFields expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedValues expectedValueInterval:(NSNumber * _Nullable)expectedValueInterval timedInvokeTimeout:(NSNumber * _Nullable)timeout serverSideProcessingTimeout:(NSNumber * _Nullable)serverSideProcessingTimeout
33+
completion:(MTRDeviceResponseHandler)completion;
3334

3435
// Not Supported via XPC
3536
//- (oneway void)deviceController:(NSUUID *)controller nodeID:(NSNumber *)nodeID openCommissioningWindowWithSetupPasscode:(NSNumber *)setupPasscode discriminator:(NSNumber *)discriminator duration:(NSNumber *)duration completion:(MTRDeviceOpenCommissioningWindowHandler)completion;

0 commit comments

Comments
 (0)