| {{> header excludeZapComment=true}} |
| |
| #import <Foundation/Foundation.h> |
| #import <Matter/MTRStructsObjc.h> |
| |
| NS_ASSUME_NONNULL_BEGIN |
| |
| {{#zcl_clusters}} |
| {{#zcl_commands}} |
| {{#unless (isStrEqual (asUpperCamelCase parent.name preserveAcronyms=true) (compatClusterNameRemapping parent.name))}} |
| MTR_NEWLY_AVAILABLE |
| {{else}} |
| {{#unless (isStrEqual (asUpperCamelCase name preserveAcronyms=true) (asUpperCamelCase name))}} |
| MTR_NEWLY_AVAILABLE |
| {{/unless}} |
| {{/unless}} |
| @interface MTR{{asUpperCamelCase parent.name preserveAcronyms=true}}Cluster{{asUpperCamelCase name preserveAcronyms=true}}Params : NSObject <NSCopying> |
| {{#zcl_command_arguments}} |
| |
| {{! Override the getter name because some of our properties start with things |
| like "new" or "init" }} |
| @property (nonatomic, copy{{#unless (isStrEqual (asGetterName label) (asStructPropertyName label))}}, getter={{asGetterName label}}{{/unless}}) {{asObjectiveCType type parent.parent.name}} {{asStructPropertyName label}}; |
| {{/zcl_command_arguments}} |
| /** |
| * 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 {{#if (isStrEqual source "server")}}MTR_NEWLY_DEPRECATED("Timed invoke does not make sense for server to client commands"){{/if}}; |
| |
| - (instancetype)init; |
| - (id)copyWithZone:(NSZone * _Nullable)zone; |
| @end |
| {{#*inline "deprecatedDecl"}} |
| |
| MTR_NEWLY_DEPRECATED("Please use MTR{{asUpperCamelCase parent.name preserveAcronyms=true}}Cluster{{asUpperCamelCase name preserveAcronyms=true}}Params") |
| @interface MTR{{compatClusterNameRemapping parent.name}}Cluster{{asUpperCamelCase name}}Params : MTR{{asUpperCamelCase parent.name preserveAcronyms=true}}Cluster{{asUpperCamelCase name}}Params |
| @end |
| |
| {{/inline}} |
| {{#unless (isStrEqual (asUpperCamelCase parent.name preserveAcronyms=true) (compatClusterNameRemapping parent.name))}} |
| {{> deprecatedDecl}} |
| {{else}} |
| {{#unless (isStrEqual (asUpperCamelCase name preserveAcronyms=true) (asUpperCamelCase name))}} |
| {{> deprecatedDecl}} |
| {{/unless}} |
| {{/unless}} |
| {{/zcl_commands}} |
| {{/zcl_clusters}} |
| |
| NS_ASSUME_NONNULL_END |