MySQLPacketError.decode constructor
MySQLPacketError.decode(
- Uint8List buffer
Decodifica um buffer Uint8List recebido do servidor e retorna uma instância de MySQLPacketError.
O formato esperado do buffer é:
- Header: 1 byte (geralmente 0xff).
- Error code: 2 bytes.
- SQL state marker e SQL state: 1 + 5 bytes (total de 6 bytes, ignorados).
- Error message: o restante do buffer é interpretado como uma string UTF-8.
Implementation
factory MySQLPacketError.decode(Uint8List buffer) {
final byteData = ByteData.sublistView(buffer);
int offset = 0;
// 1) Leitura do header (1 byte)
final header = byteData.getUint8(offset);
offset += 1;
// 2) Leitura do código de erro (2 bytes)
final errorCode = byteData.getInt2(offset);
offset += 2;
// 3) Pula o marcador de SQL state e o SQL state (1 + 5 bytes = 6 bytes)
offset += 6;
// 4) O restante do buffer corresponde à mensagem de erro
final errorMessage = buffer.getUtf8StringEOF(offset);
return MySQLPacketError(
header: header,
errorCode: errorCode,
errorMessage: errorMessage,
);
}