fromBytes static method
A factory constructor to deserialize a frame from bytes.
Implementation
static Frame fromBytes(ByteData view, int offset) {
final type = view.getUint8(offset);
if (type >= FrameType.values.length) {
throw ArgumentError('Unknown frame type: $type');
}
switch (FrameType.values[type]) {
case FrameType.padding:
return PaddingFrame.fromBytes(view, offset);
case FrameType.ping:
return PingFrame.fromBytes(view, offset);
case FrameType.ack:
return AckFrame.fromBytes(view, offset);
case FrameType.stream:
return StreamFrame.fromBytes(view, offset);
case FrameType.windowUpdate:
return WindowUpdateFrame.fromBytes(view, offset);
case FrameType.maxData:
return MaxDataFrame.fromBytes(view, offset);
case FrameType.resetStream:
return ResetStreamFrame.fromBytes(view, offset);
case FrameType.maxStreams:
return MaxStreamsFrame.fromBytes(view, offset);
case FrameType.mtuProbe:
return MtuProbeFrame.fromBytes(view, offset);
case FrameType.pathChallenge:
return PathChallengeFrame.fromBytes(view, offset);
case FrameType.pathResponse:
return PathResponseFrame.fromBytes(view, offset);
case FrameType.connectionClose:
return ConnectionCloseFrame.fromBytes(view, offset);
case FrameType.stopSending:
return StopSendingFrame.fromBytes(view, offset);
case FrameType.dataBlocked:
return DataBlockedFrame.fromBytes(view, offset);
case FrameType.streamDataBlocked:
return StreamDataBlockedFrame.fromBytes(view, offset);
case FrameType.newConnectionId:
return NewConnectionIdFrame.fromBytes(view, offset);
case FrameType.retireConnectionId:
return RetireConnectionIdFrame.fromBytes(view, offset);
}
}