deserializePayload method

  1. @override
int deserializePayload(
  1. TrexObservationBuilder 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.TrexObservationBuilder builder, ByteData byteData,
    Endian endianness, int offset) {
  var byteOffset = offset;

  // field timeline
  var timelineSSize = byteData.getUint16(byteOffset, endianness);
  byteOffset += 2;
  var timelineDData = List.filled(timelineSSize, 0);
  for (var i = 0; i < timelineSSize; i++) {
    timelineDData[i] = byteData.getUint8(byteOffset++);
  }
  var timelineDecoded = utf8.decode(timelineDData);
  builder.timeline = timelineDecoded;
  // field predicate
  var predicateSSize = byteData.getUint16(byteOffset, endianness);
  byteOffset += 2;
  var predicateDData = List.filled(predicateSSize, 0);
  for (var i = 0; i < predicateSSize; i++) {
    predicateDData[i] = byteData.getUint8(byteOffset++);
  }
  var predicateDecoded = utf8.decode(predicateDData);
  builder.predicate = predicateDecoded;
  // field attributes
  var attributesSSize = byteData.getUint16(byteOffset, endianness);
  byteOffset += 2;
  var attributesDData = List.filled(attributesSSize, 0);
  for (var i = 0; i < attributesSSize; i++) {
    attributesDData[i] = byteData.getUint8(byteOffset++);
  }
  var attributesDecoded = utf8.decode(attributesDData);
  builder.attributes = attributesDecoded;

  return byteOffset - offset;
}