serializePayload method

  1. @override
int serializePayload(
  1. EntityInfo? message,
  2. ByteData byteData,
  3. int offset
)
override

Call to serialize only the payload, no header, returns a int with a serialized size

Implementation

@override
int serializePayload(imc.EntityInfo? message, ByteData byteData, int offset) {
  if (message == null) return 0;

  var byteOffset = offset;

  // field id
  byteData.setUint8(byteOffset, message.id);
  byteOffset += 1;
  // field label
  var labelEncoded = utf8.encode(message.label);
  var labelSSize = labelEncoded.length;
  byteData.setUint16(byteOffset, labelSSize, imc.endianSer);
  byteOffset += 2;
  for (var b in labelEncoded) {
    byteData.setUint8(byteOffset++, b);
  }
  // field component
  var componentEncoded = utf8.encode(message.component);
  var componentSSize = componentEncoded.length;
  byteData.setUint16(byteOffset, componentSSize, imc.endianSer);
  byteOffset += 2;
  for (var b in componentEncoded) {
    byteData.setUint8(byteOffset++, b);
  }
  // field actTime
  byteData.setUint16(byteOffset, message.actTime, imc.endianSer);
  byteOffset += 2;
  // field deactTime
  byteData.setUint16(byteOffset, message.deactTime, imc.endianSer);
  byteOffset += 2;

  return byteOffset - offset;
}