b0491aa268a31285f37b77c8851c29c249877488
[platform/upstream/connectedhomeip.git] / src / app / zap-templates / att-storage.zapt
1 {{chip_header}}
2
3 // Prevent multiple inclusion
4 #pragma once
5
6 // Attribute masks modify how attributes are used by the framework
7 //
8 // Attribute that has this mask is NOT read-only
9 #define ATTRIBUTE_MASK_WRITABLE (0x01)
10 // Attribute that has this mask is saved to a token
11 #define ATTRIBUTE_MASK_TOKENIZE (0x02)
12 // Attribute that has this mask has a min/max values
13 #define ATTRIBUTE_MASK_MIN_MAX (0x04)
14 // Manufacturer specific attribute
15 #define ATTRIBUTE_MASK_MANUFACTURER_SPECIFIC (0x08)
16 // Attribute deferred to external storage
17 #define ATTRIBUTE_MASK_EXTERNAL_STORAGE (0x10)
18 // Attribute is singleton
19 #define ATTRIBUTE_MASK_SINGLETON (0x20)
20 // Attribute is a client attribute
21 #define ATTRIBUTE_MASK_CLIENT (0x40)
22
23 // Cluster masks modify how clusters are used by the framework
24 //
25 // Does this cluster have init function?
26 #define CLUSTER_MASK_INIT_FUNCTION (0x01)
27 // Does this cluster have attribute changed function?
28 #define CLUSTER_MASK_ATTRIBUTE_CHANGED_FUNCTION (0x02)
29 // Does this cluster have default response function?
30 #define CLUSTER_MASK_DEFAULT_RESPONSE_FUNCTION (0x04)
31 // Does this cluster have message sent function?
32 #define CLUSTER_MASK_MESSAGE_SENT_FUNCTION (0x08)
33 // Does this cluster have manufacturer specific attribute changed function?
34 #define CLUSTER_MASK_MANUFACTURER_SPECIFIC_ATTRIBUTE_CHANGED_FUNCTION (0x10)
35 // Does this cluster have pre-attribute changed function?
36 #define CLUSTER_MASK_PRE_ATTRIBUTE_CHANGED_FUNCTION (0x20)
37 // Cluster is a server
38 #define CLUSTER_MASK_SERVER (0x40)
39 // Cluster is a client
40 #define CLUSTER_MASK_CLIENT (0x80)
41
42 // Command masks modify meanings of commands
43 //
44 // Is sending of this client command supported
45 #define COMMAND_MASK_OUTGOING_CLIENT (0x01)
46 // Is sending of this server command supported
47 #define COMMAND_MASK_OUTGOING_SERVER (0x02)
48 // Is receiving of this client command supported
49 #define COMMAND_MASK_INCOMING_CLIENT (0x04)
50 // Is receiving of this server command supported
51 #define COMMAND_MASK_INCOMING_SERVER (0x08)
52 // Is this command manufacturer specific?
53 #define COMMAND_MASK_MANUFACTURER_SPECIFIC (0x10)