encodePayloadFrame static method

Uint8List encodePayloadFrame(
  1. int streamId,
  2. bool completed,
  3. Payload? payload
)

Implementation

static Uint8List encodePayloadFrame(
    int streamId, bool completed, Payload? payload) {
  var frameBuffer = RSocketByteBuffer();
  frameBuffer.writeI24(0); // frame length
  frameBuffer.writeI32(streamId); //stream id
  var flags = 0;
  if (completed) {
    flags = flags | 0x40; //complete
  } else {
    flags = flags | 0x20; //next
  }
  if (payload != null) {
    writeTFrameTypeAndFlags(
        frameBuffer, frame_types.PAYLOAD, payload.metadata, flags);
    writePayload(frameBuffer, payload);
  } else {
    writeTFrameTypeAndFlags(frameBuffer, frame_types.PAYLOAD, null, flags);
  }
  refillFrameLength(frameBuffer);
  return frameBuffer.toUint8Array();
}