deserializePayload method

  1. @override
int deserializePayload(
  1. EntityInfoBuilder builder,
  2. ByteData byteData,
  3. Endian endianness,
  4. int offset,
)
override

Call to deserialize only the payload, no header. The Builder is to allow passing the message to build into. returns a int with a serialized size

Implementation

@override
int deserializePayload(imc.EntityInfoBuilder builder, ByteData byteData,
    Endian endianness, int offset) {
  var byteOffset = offset;

  // field id
  builder.id = byteData.getUint8(byteOffset);
  byteOffset += 1;
  // field label
  var labelSSize = byteData.getUint16(byteOffset, endianness);
  byteOffset += 2;
  var labelDData = List.filled(labelSSize, 0);
  for (var i = 0; i < labelSSize; i++) {
    labelDData[i] = byteData.getUint8(byteOffset++);
  }
  var labelDecoded = utf8.decode(labelDData);
  builder.label = labelDecoded;
  // field component
  var componentSSize = byteData.getUint16(byteOffset, endianness);
  byteOffset += 2;
  var componentDData = List.filled(componentSSize, 0);
  for (var i = 0; i < componentSSize; i++) {
    componentDData[i] = byteData.getUint8(byteOffset++);
  }
  var componentDecoded = utf8.decode(componentDData);
  builder.component = componentDecoded;
  // field actTime
  builder.actTime = byteData.getUint16(byteOffset, endianness);
  byteOffset += 2;
  // field deactTime
  builder.deactTime = byteData.getUint16(byteOffset, endianness);
  byteOffset += 2;

  return byteOffset - offset;
}