detectPacketType static method

MySQLGenericPacketType detectPacketType(
  1. Uint8List buffer
)

Detecta o tipo genérico do pacote com base no primeiro byte do payload.

Observando o payload:

  • 0x00 -> OK (se payloadLength >= 7),
  • 0xfe -> EOF (se payloadLength < 9),
  • 0xff -> Error,
  • Caso contrĂ¡rio -> other.

Implementation

static MySQLGenericPacketType detectPacketType(Uint8List buffer) {
  final byteData = ByteData.sublistView(buffer);
  final header = decodePacketHeader(buffer);
  final payloadLength = header.item1;
  final type = byteData.getUint8(4);
  if (type == 0x00 && payloadLength >= 7) {
    return MySQLGenericPacketType.ok;
  } else if (type == 0xfe && payloadLength < 9) {
    return MySQLGenericPacketType.eof;
  } else if (type == 0xff) {
    return MySQLGenericPacketType.error;
  } else {
    return MySQLGenericPacketType.other;
  }
}