MySQLPacket.decodeGenericPacket constructor
MySQLPacket.decodeGenericPacket(
- Uint8List buffer
Decodifica um pacote genérico, podendo ser OK, EOF, ERROR, etc.
Implementation
factory MySQLPacket.decodeGenericPacket(Uint8List buffer) {
final header = decodePacketHeader(buffer);
final payloadBytes = _extractPayload(buffer, header.$1);
final payloadLength = payloadBytes.length;
final type = payloadBytes[0];
late MySQLPacketPayload payload;
if (type == 0x00 && payloadLength >= 7) {
payload = MySQLPacketOK.decode(payloadBytes);
} else if (type == 0xfe && payloadLength < 9) {
payload = MySQLPacketEOF.decode(payloadBytes);
} else if (type == 0xff) {
payload = MySQLPacketError.decode(payloadBytes);
} else if (type == 0x01) {
// Extra Auth Data
payload = MySQLPacketExtraAuthData.decode(payloadBytes);
} else {
throw MySQLProtocolException(
'Unsupported generic packet type 0x${type.toRadixString(16)} '
'(payload length $payloadLength)',
);
}
return MySQLPacket(
sequenceID: header.$2,
payloadLength: payloadLength,
payload: payload,
);
}