MySQLPacketOK.decode constructor
MySQLPacketOK.decode(
- Uint8List buffer
Decodifica um buffer Uint8List recebido do servidor e retorna uma instância de MySQLPacketOK.
A decodificação segue a seguinte estrutura:
- Header: 1 byte, que deve ser 0x00.
- Affected Rows: Valor length-encoded, representando o número de linhas afetadas.
- Last Insert ID: Valor length-encoded, representando o último ID gerado.
O método utiliza a função getVariableEncInt
para decodificar os valores length-encoded.
Implementation
factory MySQLPacketOK.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 número de linhas afetadas (length-encoded integer)
final affectedRows = byteData.getVariableEncInt(offset);
offset += affectedRows.item2;
// 3) Leitura do último ID inserido (length-encoded integer)
final lastInsertID = byteData.getVariableEncInt(offset);
offset += lastInsertID.item2;
return MySQLPacketOK(
header: header,
affectedRows: affectedRows.item1,
lastInsertID: lastInsertID.item1,
);
}