decodePayload function

Payload decodePayload(
  1. RSocketByteBuffer buffer,
  2. bool metadataPresent,
  3. int frameLength
)

Implementation

Payload decodePayload(
    RSocketByteBuffer buffer, bool metadataPresent, int frameLength) {
  var payload = Payload();
  var dataLength = frameLength - 6;
  if (metadataPresent) {
    var metadataLength = buffer.readI24();
    if (metadataLength != null) {
      dataLength = dataLength - 3 - metadataLength;
      if (metadataLength > 0) {
        payload.metadata = buffer.readUint8List(metadataLength);
      }
    }
  }
  if (dataLength > 0) {
    payload.data = buffer.readUint8List(dataLength);
  }
  return payload;
}