- Notifications
You must be signed in to change notification settings - Fork548
Matter iOS xcode16.0 b2
Rolf Bjarne Kvinge edited this pageSep 3, 2024 ·2 revisions
#Matter.frameworkhttps://github.com/xamarin/xamarin-macios/issues/21177
diff -ruN /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/Matter.framework/Headers/MTRBaseClusters.h /Applications/Xcode_16.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/Matter.framework/Headers/MTRBaseClusters.h--- /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/Matter.framework/Headers/MTRBaseClusters.h2024-05-31 07:37:03+++ /Applications/Xcode_16.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/Matter.framework/Headers/MTRBaseClusters.h2024-06-12 22:09:14@@ -12990,6 +12990,82 @@ @end /**+ * Cluster Wi-Fi Network Management+ *+ * Functionality to retrieve operational information about a managed Wi-Fi network.+ */+MTR_PROVISIONALLY_AVAILABLE+@interface MTRBaseClusterWiFiNetworkManagement : MTRGenericBaseCluster++/**+ * Command NetworkPassphraseRequest+ *+ * Request the current WPA-Personal passphrase or PSK associated with the managed Wi-Fi network.+ */+- (void)networkPassphraseRequestWithParams:(MTRWiFiNetworkManagementClusterNetworkPassphraseRequestParams * _Nullable)params completion:(void (^)(MTRWiFiNetworkManagementClusterNetworkPassphraseResponseParams * _Nullable data, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;+- (void)networkPassphraseRequestWithCompletion:(void (^)(MTRWiFiNetworkManagementClusterNetworkPassphraseResponseParams * _Nullable data, NSError * _Nullable error))completion+ MTR_PROVISIONALLY_AVAILABLE;++- (void)readAttributeSSIDWithCompletion:(void (^)(NSData * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;+- (void)subscribeAttributeSSIDWithParams:(MTRSubscribeParams *)params+ subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished+ reportHandler:(void (^)(NSData * _Nullable value, NSError * _Nullable error))reportHandler MTR_PROVISIONALLY_AVAILABLE;++ (void)readAttributeSSIDWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSData * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;++- (void)readAttributeGeneratedCommandListWithCompletion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;+- (void)subscribeAttributeGeneratedCommandListWithParams:(MTRSubscribeParams *)params+ subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished+ reportHandler:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))reportHandler MTR_PROVISIONALLY_AVAILABLE;++ (void)readAttributeGeneratedCommandListWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;++- (void)readAttributeAcceptedCommandListWithCompletion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;+- (void)subscribeAttributeAcceptedCommandListWithParams:(MTRSubscribeParams *)params+ subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished+ reportHandler:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))reportHandler MTR_PROVISIONALLY_AVAILABLE;++ (void)readAttributeAcceptedCommandListWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;++- (void)readAttributeEventListWithCompletion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;+- (void)subscribeAttributeEventListWithParams:(MTRSubscribeParams *)params+ subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished+ reportHandler:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))reportHandler MTR_PROVISIONALLY_AVAILABLE;++ (void)readAttributeEventListWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;++- (void)readAttributeAttributeListWithCompletion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;+- (void)subscribeAttributeAttributeListWithParams:(MTRSubscribeParams *)params+ subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished+ reportHandler:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))reportHandler MTR_PROVISIONALLY_AVAILABLE;++ (void)readAttributeAttributeListWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;++- (void)readAttributeFeatureMapWithCompletion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;+- (void)subscribeAttributeFeatureMapWithParams:(MTRSubscribeParams *)params+ subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished+ reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler MTR_PROVISIONALLY_AVAILABLE;++ (void)readAttributeFeatureMapWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;++- (void)readAttributeClusterRevisionWithCompletion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;+- (void)subscribeAttributeClusterRevisionWithParams:(MTRSubscribeParams *)params+ subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished+ reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler MTR_PROVISIONALLY_AVAILABLE;++ (void)readAttributeClusterRevisionWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;++- (instancetype)init NS_UNAVAILABLE;++ (instancetype)new NS_UNAVAILABLE;++@end++@interface MTRBaseClusterWiFiNetworkManagement (Availability)++/**+ * For all instance methods (reads, writes, commands) that take a completion,+ * the completion will be called on the provided queue.+ */+- (instancetype _Nullable)initWithDevice:(MTRBaseDevice *)device+ endpointID:(NSNumber *)endpointID+ queue:(dispatch_queue_t)queue MTR_PROVISIONALLY_AVAILABLE;++@end++/** * Cluster Wake on LAN * * This cluster provides an interface for managing low power mode on a device that supports the Wake On LAN protocol.diff -ruN /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/Matter.framework/Headers/MTRClusterConstants.h /Applications/Xcode_16.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/Matter.framework/Headers/MTRClusterConstants.h--- /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/Matter.framework/Headers/MTRClusterConstants.h2024-05-30 04:34:37+++ /Applications/Xcode_16.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/Matter.framework/Headers/MTRClusterConstants.h2024-06-12 20:45:58@@ -184,6 +184,7 @@ MTRClusterIDTypePM10ConcentrationMeasurementID MTR_AVAILABLE(ios(17.6), macos(14.6), watchos(10.6), tvos(17.6)) = 0x0000042D, MTRClusterIDTypeTotalVolatileOrganicCompoundsConcentrationMeasurementID MTR_AVAILABLE(ios(17.6), macos(14.6), watchos(10.6), tvos(17.6)) = 0x0000042E, MTRClusterIDTypeRadonConcentrationMeasurementID MTR_AVAILABLE(ios(17.6), macos(14.6), watchos(10.6), tvos(17.6)) = 0x0000042F,+ MTRClusterIDTypeWiFiNetworkManagementID MTR_PROVISIONALLY_AVAILABLE = 0x00000451, MTRClusterIDTypeWakeOnLANID MTR_AVAILABLE(ios(16.4), macos(13.3), watchos(9.4), tvos(16.4)) = 0x00000503, MTRClusterIDTypeChannelID MTR_AVAILABLE(ios(16.4), macos(13.3), watchos(9.4), tvos(16.4)) = 0x00000504, MTRClusterIDTypeTargetNavigatorID MTR_AVAILABLE(ios(16.4), macos(13.3), watchos(9.4), tvos(16.4)) = 0x00000505,@@ -4361,6 +4362,15 @@ MTRAttributeIDTypeClusterRadonConcentrationMeasurementAttributeFeatureMapID MTR_AVAILABLE(ios(17.6), macos(14.6), watchos(10.6), tvos(17.6)) = MTRAttributeIDTypeGlobalAttributeFeatureMapID, MTRAttributeIDTypeClusterRadonConcentrationMeasurementAttributeClusterRevisionID MTR_AVAILABLE(ios(17.6), macos(14.6), watchos(10.6), tvos(17.6)) = MTRAttributeIDTypeGlobalAttributeClusterRevisionID,+ // Cluster WiFiNetworkManagement attributes+ MTRAttributeIDTypeClusterWiFiNetworkManagementAttributeSSIDID MTR_PROVISIONALLY_AVAILABLE = 0x00000001,+ MTRAttributeIDTypeClusterWiFiNetworkManagementAttributeGeneratedCommandListID MTR_PROVISIONALLY_AVAILABLE = MTRAttributeIDTypeGlobalAttributeGeneratedCommandListID,+ MTRAttributeIDTypeClusterWiFiNetworkManagementAttributeAcceptedCommandListID MTR_PROVISIONALLY_AVAILABLE = MTRAttributeIDTypeGlobalAttributeAcceptedCommandListID,+ MTRAttributeIDTypeClusterWiFiNetworkManagementAttributeEventListID MTR_PROVISIONALLY_AVAILABLE = MTRAttributeIDTypeGlobalAttributeEventListID,+ MTRAttributeIDTypeClusterWiFiNetworkManagementAttributeAttributeListID MTR_PROVISIONALLY_AVAILABLE = MTRAttributeIDTypeGlobalAttributeAttributeListID,+ MTRAttributeIDTypeClusterWiFiNetworkManagementAttributeFeatureMapID MTR_PROVISIONALLY_AVAILABLE = MTRAttributeIDTypeGlobalAttributeFeatureMapID,+ MTRAttributeIDTypeClusterWiFiNetworkManagementAttributeClusterRevisionID MTR_PROVISIONALLY_AVAILABLE = MTRAttributeIDTypeGlobalAttributeClusterRevisionID,+ // Cluster WakeOnLan deprecated attribute names MTRClusterWakeOnLanAttributeMACAddressID MTR_DEPRECATED("Please use MTRAttributeIDTypeClusterWakeOnLANAttributeMACAddressID", ios(16.1, 16.4), macos(13.0, 13.3), watchos(9.1, 9.4), tvos(16.1, 16.4))@@ -6574,6 +6584,10 @@ MTRCommandIDTypeClusterColorControlCommandStopMoveStepID MTR_AVAILABLE(ios(16.4), macos(13.3), watchos(9.4), tvos(16.4)) = 0x00000047, MTRCommandIDTypeClusterColorControlCommandMoveColorTemperatureID MTR_AVAILABLE(ios(16.4), macos(13.3), watchos(9.4), tvos(16.4)) = 0x0000004B, MTRCommandIDTypeClusterColorControlCommandStepColorTemperatureID MTR_AVAILABLE(ios(16.4), macos(13.3), watchos(9.4), tvos(16.4)) = 0x0000004C,++ // Cluster WiFiNetworkManagement commands+ MTRCommandIDTypeClusterWiFiNetworkManagementCommandNetworkPassphraseRequestID MTR_PROVISIONALLY_AVAILABLE = 0x00000000,+ MTRCommandIDTypeClusterWiFiNetworkManagementCommandNetworkPassphraseResponseID MTR_PROVISIONALLY_AVAILABLE = 0x00000001, // Cluster Channel deprecated command id names MTRClusterChannelCommandChangeChannelIDdiff -ruN /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/Matter.framework/Headers/MTRClusters.h /Applications/Xcode_16.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/Matter.framework/Headers/MTRClusters.h--- /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/Matter.framework/Headers/MTRClusters.h2024-05-31 07:37:04+++ /Applications/Xcode_16.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/Matter.framework/Headers/MTRClusters.h2024-06-12 20:42:14@@ -5994,6 +5994,48 @@ @end /**+ * Cluster Wi-Fi Network Management+ * Functionality to retrieve operational information about a managed Wi-Fi network.+ */+MTR_PROVISIONALLY_AVAILABLE+@interface MTRClusterWiFiNetworkManagement : MTRGenericCluster++- (void)networkPassphraseRequestWithParams:(MTRWiFiNetworkManagementClusterNetworkPassphraseRequestParams * _Nullable)params expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs completion:(void (^)(MTRWiFiNetworkManagementClusterNetworkPassphraseResponseParams * _Nullable data, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;+- (void)networkPassphraseRequestWithExpectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedValues expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs completion:(void (^)(MTRWiFiNetworkManagementClusterNetworkPassphraseResponseParams * _Nullable data, NSError * _Nullable error))completion+ MTR_PROVISIONALLY_AVAILABLE;++- (NSDictionary<NSString *, id> * _Nullable)readAttributeSSIDWithParams:(MTRReadParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;++- (NSDictionary<NSString *, id> * _Nullable)readAttributeGeneratedCommandListWithParams:(MTRReadParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;++- (NSDictionary<NSString *, id> * _Nullable)readAttributeAcceptedCommandListWithParams:(MTRReadParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;++- (NSDictionary<NSString *, id> * _Nullable)readAttributeEventListWithParams:(MTRReadParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;++- (NSDictionary<NSString *, id> * _Nullable)readAttributeAttributeListWithParams:(MTRReadParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;++- (NSDictionary<NSString *, id> * _Nullable)readAttributeFeatureMapWithParams:(MTRReadParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;++- (NSDictionary<NSString *, id> * _Nullable)readAttributeClusterRevisionWithParams:(MTRReadParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;++- (instancetype)init NS_UNAVAILABLE;++ (instancetype)new NS_UNAVAILABLE;++@end++@interface MTRClusterWiFiNetworkManagement (Availability)++/**+ * For all instance methods that take a completion (i.e. command invocations),+ * the completion will be called on the provided queue.+ */+- (instancetype _Nullable)initWithDevice:(MTRDevice *)device+ endpointID:(NSNumber *)endpointID+ queue:(dispatch_queue_t)queue MTR_PROVISIONALLY_AVAILABLE;++@end++/** * Cluster Wake on LAN * This cluster provides an interface for managing low power mode on a device that supports the Wake On LAN protocol. */diff -ruN /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/Matter.framework/Headers/MTRCommandPayloadsObjc.h /Applications/Xcode_16.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/Matter.framework/Headers/MTRCommandPayloadsObjc.h--- /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/Matter.framework/Headers/MTRCommandPayloadsObjc.h2024-05-30 05:19:12+++ /Applications/Xcode_16.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/Matter.framework/Headers/MTRCommandPayloadsObjc.h2024-06-12 20:45:57@@ -8512,6 +8512,53 @@ @property (nonatomic, copy, nullable) NSNumber * serverSideProcessingTimeout; @end+MTR_PROVISIONALLY_AVAILABLE+@interface MTRWiFiNetworkManagementClusterNetworkPassphraseRequestParams : NSObject <NSCopying>+/**+ * Controls whether the command is a timed command (using Timed Invoke).+ *+ * If nil (the default value), a regular invoke is done for commands that do+ * not require a timed invoke and a timed invoke with some default timed request+ * timeout is done for commands that require a timed invoke.+ *+ * If not nil, a timed invoke is done, with the provided value used as the timed+ * request timeout. The value should be chosen small enough to provide the+ * desired security properties but large enough that it will allow a round-trip+ * from the sever to the client (for the status response and actual invoke+ * request) within the timeout window.+ *+ */+@property (nonatomic, copy, nullable) NSNumber * timedInvokeTimeoutMs;++/**+ * Controls how much time, in seconds, we will allow for the server to process the command.+ *+ * The command will then time out if that much time, plus an allowance for retransmits due to network failures, passes.+ *+ * If nil, the framework will try to select an appropriate timeout value itself.+ */+@property (nonatomic, copy, nullable) NSNumber * serverSideProcessingTimeout;+@end++MTR_PROVISIONALLY_AVAILABLE+@interface MTRWiFiNetworkManagementClusterNetworkPassphraseResponseParams : NSObject <NSCopying>++@property (nonatomic, copy) NSData * _Nonnull passphrase MTR_PROVISIONALLY_AVAILABLE;++/**+ * Initialize an MTRWiFiNetworkManagementClusterNetworkPassphraseResponseParams with a response-value dictionary+ * of the sort that MTRDeviceResponseHandler would receive.+ *+ * Will return nil and hand out an error if the response-value dictionary is not+ * a command data response or is not the right command response.+ *+ * Will return nil and hand out an error if the data response does not match the known+ * schema for this command.+ */+- (nullable instancetype)initWithResponseValue:(NSDictionary<NSString *, id> *)responseValue+ error:(NSError * __autoreleasing *)error MTR_PROVISIONALLY_AVAILABLE;+@end+ MTR_AVAILABLE(ios(16.1), macos(13.0), watchos(9.1), tvos(16.1)) @interface MTRChannelClusterChangeChannelParams : NSObject <NSCopying>diff -ruN /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/Matter.framework/Headers/MTRDeviceController.h /Applications/Xcode_16.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/Matter.framework/Headers/MTRDeviceController.h--- /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/Matter.framework/Headers/MTRDeviceController.h2024-05-30 03:49:06+++ /Applications/Xcode_16.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/Matter.framework/Headers/MTRDeviceController.h2024-06-12 20:15:08@@ -54,7 +54,7 @@ * if it has not already been started. * 2) Return nil or a running controller. *- * Once this returns non-nil, it's the caller's resposibility to call shutdown+ * Once this returns non-nil, it's the caller's responsibility to call shutdown * on the controller to avoid leaking it. */ - (nullable instancetype)initWithParameters:(MTRDeviceControllerAbstractParameters *)parametersdiff -ruN /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/Matter.framework/Headers/MTRDeviceControllerParameters.h /Applications/Xcode_16.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/Matter.framework/Headers/MTRDeviceControllerParameters.h--- /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/Matter.framework/Headers/MTRDeviceControllerParameters.h2024-05-31 07:37:03+++ /Applications/Xcode_16.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/Matter.framework/Headers/MTRDeviceControllerParameters.h2024-06-12 20:45:59@@ -17,6 +17,7 @@ #import <Matter/MTRDefines.h> #import <Matter/MTRDeviceControllerStorageDelegate.h>+#import <Matter/MTRDeviceStorageBehaviorConfiguration.h> #import <Matter/MTROTAProviderDelegate.h> NS_ASSUME_NONNULL_BEGIN@@ -84,6 +85,13 @@ * If this value is 0, the maximum subscription establishments allowed at a time will be set to 1. */ @property (nonatomic, assign) NSUInteger concurrentSubscriptionEstablishmentsAllowedOnThread MTR_NEWLY_AVAILABLE;++/**+ * Sets the storage behavior configuration - see MTRDeviceStorageBehaviorConfiguration.h for details+ *+ * If this value is nil, a default storage behavior configuration will be used.+ */+@property (nonatomic, copy, nullable) MTRDeviceStorageBehaviorConfiguration * storageBehaviorConfiguration; @enddiff -ruN /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/Matter.framework/Headers/MTRDeviceStorageBehaviorConfiguration.h /Applications/Xcode_16.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/Matter.framework/Headers/MTRDeviceStorageBehaviorConfiguration.h--- /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/Matter.framework/Headers/MTRDeviceStorageBehaviorConfiguration.h1970-01-01 01:00:00+++ /Applications/Xcode_16.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/Matter.framework/Headers/MTRDeviceStorageBehaviorConfiguration.h2024-06-12 21:03:02@@ -0,0 +1,98 @@+/**+ * Copyright (c) 2024 Project CHIP Authors+ *+ * Licensed under the Apache License, Version 2.0 (the "License");+ * you may not use this file except in compliance with the License.+ * You may obtain a copy of the License at+ *+ * http://www.apache.org/licenses/LICENSE-2.0+ *+ * Unless required by applicable law or agreed to in writing, software+ * distributed under the License is distributed on an "AS IS" BASIS,+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.+ * See the License for the specific language governing permissions and+ * limitations under the License.+ */++#import <Foundation/Foundation.h>+#import <Matter/MTRDefines.h>++NS_ASSUME_NONNULL_BEGIN++/**+ * Class that configures how MTRDevice objects persist its attributes to storage, so as to not+ * overwhelm the underlying storage system.+ */+MTR_NEWLY_AVAILABLE+@interface MTRDeviceStorageBehaviorConfiguration : NSObject <NSCopying>++/**+ * Create configuration with a default set of values. See description below for details.+ */++ (instancetype)configurationWithDefaultStorageBehavior;++/**+ * Create configuration that disables storage behavior optimizations.+ */++ (instancetype)configurationWithStorageBehaviorOptimizationDisabled;++/**+ * Create configuration with specified values. See description below for details, and the list of+ * properties below for valid ranges of these values.+ */++ (instancetype)configurationWithReportToPersistenceDelayTime:(NSTimeInterval)reportToPersistenceDelayTime+ reportToPersistenceDelayTimeMax:(NSTimeInterval)reportToPersistenceDelayTimeMax+ recentReportTimesMaxCount:(NSUInteger)recentReportTimesMaxCount+ timeBetweenReportsTooShortThreshold:(NSTimeInterval)timeBetweenReportsTooShortThreshold+ timeBetweenReportsTooShortMinThreshold:(NSTimeInterval)timeBetweenReportsTooShortMinThreshold+ reportToPersistenceDelayMaxMultiplier:(double)reportToPersistenceDelayMaxMultiplier+ deviceReportingExcessivelyIntervalThreshold:(NSTimeInterval)deviceReportingExcessivelyIntervalThreshold;++/**+ * Storage behavior with values in the allowed range:+ *+ * Each time a report comes in, MTRDevice will wait reportToPersistDelayTime before persisting the+ * changes to storage. If another report comes in during this internal, MTRDevice will wait another+ * reportToPersistDelayTime interval, until reportToPersistDelayTimeMax is reached, at which+ * point all the changes so far will be written to storage.+ *+ * MTRDevice will also track recentReportTimesMaxCount number of report times. If the running+ * average time between reports dips below timeBetweenReportsTooShortThreshold, a portion of the+ * reportToPersistenceDelayMaxMultiplier will be applied to both the reportToPersistenceDelayTime+ * and reportToPersistenceDelayTimeMax. The multiplier will reach the max when the average time+ * between reports reach timeBetweenReportsTooShortMinThreshold.+ *+ * When the running average time between reports dips below timeBetweenReportsTooShortMinThreshold+ * for the first time, the time will be noted. If the device remains in this state for longer than+ * deviceReportingExcessivelyIntervalThreshold, persistence will stop until the average time between+ * reports go back above timeBetweenReportsTooShortMinThreshold.+ */++/**+ * If disableStorageBehaviorOptimization is set to YES, then all the waiting mechanism as described above+ * is disabled.+ */+@property (nonatomic, assign) BOOL disableStorageBehaviorOptimization;++/**+ * If any of these properties are set to be out of the documented limits, these default values will+ * be used to replace all of them:+ *+ * reportToPersistenceDelayTimeDefault (15)+ * reportToPersistenceDelayTimeMaxDefault (20 * kReportToPersistenceDelayTimeDefault)+ * recentReportTimesMaxCountDefault (12)+ * timeBetweenReportsTooShortThresholdDefault (15)+ * timeBetweenReportsTooShortMinThresholdDefault (5)+ * reportToPersistenceDelayMaxMultiplierDefault (10)+ * deviceReportingExcessivelyIntervalThresholdDefault (5 * 60)+ */+@property (nonatomic, assign) NSTimeInterval reportToPersistenceDelayTime; /* must be > 0 */+@property (nonatomic, assign) NSTimeInterval reportToPersistenceDelayTimeMax; /* must be larger than reportToPersistenceDelayTime */+@property (nonatomic, assign) NSUInteger recentReportTimesMaxCount; /* must be >= 2 */+@property (nonatomic, assign) NSTimeInterval timeBetweenReportsTooShortThreshold; /* must be > 0 */+@property (nonatomic, assign) NSTimeInterval timeBetweenReportsTooShortMinThreshold; /* must be > 0 and smaller than timeBetweenReportsTooShortThreshold */+@property (nonatomic, assign) double reportToPersistenceDelayMaxMultiplier; /* must be > 1 */+@property (nonatomic, assign) NSTimeInterval deviceReportingExcessivelyIntervalThreshold; /* must be > 0 */+@end++NS_ASSUME_NONNULL_ENDdiff -ruN /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/Matter.framework/Headers/Matter.h /Applications/Xcode_16.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/Matter.framework/Headers/Matter.h--- /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/Matter.framework/Headers/Matter.h2024-05-31 07:37:00+++ /Applications/Xcode_16.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/Matter.framework/Headers/Matter.h2024-06-12 20:45:56@@ -47,6 +47,7 @@ #import <Matter/MTRDeviceControllerParameters.h> #import <Matter/MTRDeviceControllerStartupParams.h> #import <Matter/MTRDeviceControllerStorageDelegate.h>+#import <Matter/MTRDeviceStorageBehaviorConfiguration.h> #import <Matter/MTRDeviceTypeRevision.h> #import <Matter/MTRDiagnosticLogsType.h> #import <Matter/MTRError.h>