01da2a2a10a95f0b236c6f6fac863e160a594fb4
[platform/upstream/connectedhomeip.git] / src / app / zap-templates / templates / chip / CHIPClusters.zapt
1 {{> header}}
2
3 // Prevent multiple inclusion
4 #pragma once
5
6 #include <controller/CHIPCluster.h>
7 #include <core/CHIPCallback.h>
8 #include <lib/support/Span.h>
9
10 namespace chip {
11 namespace Controller {
12
13 {{#chip_server_clusters}}
14 constexpr ClusterId k{{asCamelCased name false}}ClusterId = {{asHex code 4}};
15 {{/chip_server_clusters}}
16
17 {{#chip_server_clusters}}
18 class DLL_EXPORT {{asCamelCased name false}}Cluster : public ClusterBase
19 {
20 public:
21     {{asCamelCased name false}}Cluster() : ClusterBase(k{{asCamelCased name false}}ClusterId) {}
22     ~{{asCamelCased name false}}Cluster() {}
23     {{#chip_server_cluster_commands}}
24     {{#first}}
25
26     // Cluster Commands
27     {{/first}}
28     CHIP_ERROR {{asCamelCased name false}}(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback{{#chip_server_cluster_command_arguments}}, {{chipType}} {{asCamelCased label}}{{/chip_server_cluster_command_arguments}});
29     {{/chip_server_cluster_commands}}
30
31     // Cluster Attributes
32     CHIP_ERROR DiscoverAttributes(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
33     {{#chip_server_cluster_attributes}}
34     CHIP_ERROR ReadAttribute{{asCamelCased name false}}(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
35     {{/chip_server_cluster_attributes}}
36     {{#chip_server_cluster_attributes}}
37     {{#if (isWritableAttribute)}}
38     CHIP_ERROR WriteAttribute{{asCamelCased name false}}(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback, {{asUnderlyingZclType type}} value);
39     {{/if}}
40     {{/chip_server_cluster_attributes}}
41     {{#chip_server_cluster_attributes}}
42     {{#if (isReportableAttribute)}}
43     CHIP_ERROR ConfigureAttribute{{asCamelCased name false}}(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback, uint16_t minInterval, uint16_t maxInterval{{#unless (isDiscreteType)}}, {{chipType}} change{{/unless}});
44     CHIP_ERROR ReportAttribute{{asCamelCased name false}}(Callback::Cancelable * onReportCallback);
45     {{/if}}
46     {{/chip_server_cluster_attributes}}
47     {{#chip_server_cluster_commands}}
48     {{#first}}
49
50 private:
51     {{/first}}
52     static constexpr CommandId k{{asCamelCased name false}}CommandId = {{asHex code 2}};
53     {{/chip_server_cluster_commands}}
54 };
55
56 {{/chip_server_clusters}}
57 } // namespace Controller
58 } // namespace chip