blob: bd9679893f37c63443ca6c344c2d71cb00d037a3 [file] [log] [blame]
[% IF ieTypeData.ieCardinality == 1 -%][% IF ieTypeData.grouped == "Yes" -%]
[% ieTypeData.grpIeInstClassName %] groupedIeInstance =
dynamic_cast<
[% ieTypeData.grpIeInstClassName %]&>(ieObject.getGroupedIe(msgType, [% ieTypeData.instance %]));
rc = groupedIeInstance.decode[% ieTypeData.grpIeInstClassName %](buffer, data.[% ieTypeData.ieVarName %], ieHeader.length);
[% ELSE -%]
rc = ieObject.decode[% ieTypeData.ieType %]Ie(buffer, data.[% ieTypeData.ieVarName %], ieHeader.length);
[% END -%]
[% ELSE -%]
// First check if we have enough space left to decode and store this instance
if (data.[% ieTypeData.ieVarName %]Count == [% ieTypeData.ieCardinality %])
{
errorStream.add((char *)"More than [% ieTypeData.ieCardinality %] instances of [% ieTypeData.ieVarName %] received\n");
return false;
}
[% IF ieTypeData.grouped == "Yes" -%]
[% ieTypeData.grpIeInstClassName %] groupedIeInstance =
dynamic_cast<
[% ieTypeData.grpIeInstClassName %]&>(ieObject.getGroupedIe(msgType, [% ieTypeData.instance %]));
rc = groupedIeInstance.decode[% ieTypeData.grpIeInstClassName %](buffer,
data.[% ieTypeData.ieVarName %][data.[% ieTypeData.ieVarName %]Count], ieHeader.length);
data.[% ieTypeData.ieVarName %]Count++; // TODO Count validation
[% ELSE -%]
rc = ieObject.decode[% ieTypeData.ieType %]Ie(buffer, data.[% ieTypeData.ieVarName %][[% ieTypeData.ieVarName %]Count], ieHeader.length);
data.[% ieTypeData.ieVarName %]Count++; // TODO Count validation
[% END -%]
[% END -%]