parseFrame function

RSocketFrame? parseFrame(
  1. RSocketByteBuffer byteBuffer
)

Implementation

RSocketFrame? parseFrame(RSocketByteBuffer byteBuffer) {
  var header = RSocketHeader.fromBuffer(byteBuffer);
  RSocketFrame? frame;
  switch (header.type) {
    case frame_types.SETUP:
      frame = SetupFrame.fromBuffer(header, byteBuffer);
      break;
    case frame_types.LEASE:
      frame = LeaseFrame.fromBuffer(header, byteBuffer);
      break;
    case frame_types.KEEPALIVE:
      frame = KeepAliveFrame.fromBuffer(header, byteBuffer);
      break;
    case frame_types.REQUEST_RESPONSE:
      frame = RequestResponseFrame.fromBuffer(header, byteBuffer);
      break;
    case frame_types.REQUEST_FNF:
      frame = RequestFNFFrame.fromBuffer(header, byteBuffer);
      break;
    case frame_types.REQUEST_STREAM:
      frame = RequestFNFFrame.fromBuffer(header, byteBuffer);
      break;
    case frame_types.REQUEST_CHANNEL:
      frame = RequestChannelFrame.fromBuffer(header, byteBuffer);
      break;
    case frame_types.REQUEST_N:
      frame = RequestNFrame.fromBuffer(header, byteBuffer);
      break;
    case frame_types.CANCEL:
      frame = CancelFrame.fromBuffer(header, byteBuffer);
      break;
    case frame_types.ERROR:
      frame = ErrorFrame.fromBuffer(header, byteBuffer);
      break;
    case frame_types.PAYLOAD:
      frame = PayloadFrame.fromBuffer(header, byteBuffer);
      break;
    default:
      if (header.frameLength > 9) {
        byteBuffer.readBytes(header.frameLength - 9);
      }
      break;
  }
  return frame;
}