Fix for x86_64 build fail
[platform/upstream/connectedhomeip.git] / src / app / zap-templates / partials / command_handler_cluster_commands.zapt
1 {{#if (zcl_command_arguments_count this.id)}}
2 uint16_t payloadOffset = cmd->payloadStartIndex;
3 {{#zcl_command_arguments}}
4 {{#if (isOctetString type)}}
5 chip::ByteSpan {{asSymbol label}};
6 {{else}}
7 {{asUnderlyingZclType type}} {{asSymbol label}};
8 {{/if}}
9 {{/zcl_command_arguments}}
10
11 {{#zcl_command_arguments}}
12 {{#if presentIf}}
13 if ({{presentIf}})
14 {
15 {{/if}}
16   {{#if isArray}}
17   {{asSymbol label}} = cmd->buffer + payloadOffset;
18   {{else}}
19   if (cmd->bufLen < payloadOffset + {{asReadTypeLength type}})
20   {
21     return EMBER_ZCL_STATUS_MALFORMED_COMMAND;
22   }
23   {{#if (isSigned type)}}
24   {{asSymbol label}} = static_cast<{{asUnderlyingZclType type}}>(emberAfGet{{asReadType type}}(cmd->buffer, payloadOffset, cmd->bufLen));
25   {{else if (isOctetString type)}}
26   {
27   uint8_t * rawData = emberAfGetString(cmd->buffer, payloadOffset, cmd->bufLen);
28   {{asSymbol label}} = chip::ByteSpan(rawData + {{asReadTypeLength type}}, emberAf{{asReadType type}}Length(rawData));
29   }
30   {{else}}
31   {{asSymbol label}} = emberAfGet{{asReadType type}}(cmd->buffer, payloadOffset, cmd->bufLen);
32   {{/if}}
33   {{#unless (isLastElement index count)}}
34   {{#if (isOctetString type)}}
35   payloadOffset = static_cast<uint16_t>(payloadOffset + {{asSymbol label}}.size() + {{asReadTypeLength type}});
36   {{else if (isString type)}}
37   payloadOffset = static_cast<uint16_t>(payloadOffset + emberAf{{asReadType type}}Length({{asSymbol label}}) + {{asReadTypeLength type}});
38   {{else}}
39   payloadOffset = static_cast<uint16_t>(payloadOffset + {{asReadTypeLength type}});
40   {{/if}}
41   {{/unless}}
42   {{/if}}
43 {{#if presentIf}}
44 }
45 else
46 {
47   {{asSymbol label}} = {{asValueIfNotPresent type isArray}};
48 }
49 {{/if}}
50 {{/zcl_command_arguments}}
51
52 {{/if}}
53 wasHandled = emberAf{{asCamelCased parent.name false}}Cluster{{asCamelCased name false}}Callback({{#zcl_command_arguments}}{{asSymbol label}}{{#unless (isLastElement index count)}}, {{/unless}}{{/zcl_command_arguments}});