parseFrame function
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;
}