encode method
Codifica o pacote SSL Request em um Uint8List para envio ao servidor.
A codificação segue a especificação do protocolo MySQL:
- capabilityFlags (4 bytes, little-endian). Se connectWithDB for
true
, a flag mysqlCapFlagClientConnectWithDB é ativada. - maxPacketSize (4 bytes, little-endian).
- characterSet (1 byte).
- 23 bytes de preenchimento (zeros).
Implementation
@override
Uint8List encode() {
// Se o cliente deseja se conectar com um banco de dados,
// ativa a flag mysqlCapFlagClientConnectWithDB.
if (connectWithDB) {
capabilityFlags = capabilityFlags | mysqlCapFlagClientConnectWithDB;
}
final buffer = ByteDataWriter(endian: Endian.little);
buffer.writeUint32(capabilityFlags);
buffer.writeUint32(maxPacketSize);
buffer.writeUint8(characterSet);
// Escreve 23 bytes de preenchimento com zeros.
buffer.write(List.filled(23, 0));
return buffer.toBytes();
}