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 offset = 4;
final byteData = ByteData.sublistView(buffer);
final payloadLength = header.item1;
final type = byteData.getUint8(offset);
late MySQLPacketPayload payload;
if (type == 0x00 && payloadLength >= 7) {
payload = MySQLPacketOK.decode(
Uint8List.sublistView(buffer, offset),
);
} else if (type == 0xfe && payloadLength < 9) {
payload = MySQLPacketEOF.decode(
Uint8List.sublistView(buffer, offset),
);
} else if (type == 0xff) {
payload = MySQLPacketError.decode(
Uint8List.sublistView(buffer, offset),
);
} else if (type == 0x01) {
// Extra Auth Data
payload = MySQLPacketExtraAuthData.decode(
Uint8List.sublistView(buffer, offset),
);
} else {
throw MySQLProtocolException("Unsupported generic packet: $buffer");
}
return MySQLPacket(
sequenceID: header.item2,
payloadLength: payloadLength,
payload: payload,
);
}