RpcNetworkerPacket.fromBytes constructor
Implementation
factory RpcNetworkerPacket.fromBytes(RpcConfig config, Uint8List bytes) {
final headerLength =
(config.extendedFunctionIdentifiers ? 2 : 1) +
(config.channelField ? 2 : 0);
if (bytes.length < headerLength) {
throw FormatException(
'RPC packet is too short: expected at least $headerLength bytes, got ${bytes.length}.',
);
}
var function = bytes[0];
int currentOffset = 1;
if (config.extendedFunctionIdentifiers) {
function = (function << 8) | bytes[currentOffset];
currentOffset++;
}
Channel sender = kAnyChannel;
if (config.channelField) {
sender = bytes[currentOffset] << 8 | bytes[currentOffset + 1];
currentOffset += 2;
}
final data = bytes.sublist(currentOffset);
return RpcNetworkerPacket(function: function, data: data, channel: sender);
}