Class PacketReader

java.lang.Object
org.mariadb.jdbc.client.socket.impl.PacketReader
All Implemented Interfaces:
Reader

public class PacketReader extends Object implements Reader
Packet reader
  • Field Details

    • REUSABLE_BUFFER_LENGTH

      private static final int REUSABLE_BUFFER_LENGTH
      See Also:
    • MAX_PACKET_SIZE

      private static final int MAX_PACKET_SIZE
      See Also:
    • logger

      private static final Logger logger
    • reusableArray

      private final byte[] reusableArray
    • inputStream

      private final InputStream inputStream
    • maxQuerySizeToLog

      private final int maxQuerySizeToLog
    • sequence

      private final MutableByte sequence
    • readBuf

      private final StandardReadableByteBuf readBuf
    • serverThreadLog

      private String serverThreadLog
  • Constructor Details

    • PacketReader

      public PacketReader(InputStream in, Configuration conf, MutableByte sequence)
      Constructor of standard socket MySQL packet stream reader.
      Parameters:
      in - stream
      conf - connection options
      sequence - current increment sequence
  • Method Details

    • readableBufFromArray

      public ReadableByteBuf readableBufFromArray(byte[] buf)
      Description copied from interface: Reader
      Get a readable byte array from byte array. This packet is expected to be read immediately, since no lock is set on this packet.
      Specified by:
      readableBufFromArray in interface Reader
      Parameters:
      buf - byte array to be parsed
      Returns:
      array packet.
    • readReusablePacket

      public ReadableByteBuf readReusablePacket() throws IOException
      Description copied from interface: Reader
      Get next MySQL packet. Packet is expected to have size < 16M and will use if possible an internal cached buffer. This packet bytes are expect to be read immediately
      Specified by:
      readReusablePacket in interface Reader
      Returns:
      Readable byte array packet.
      Throws:
      IOException - if socket exception occur.
    • readReusablePacket

      public ReadableByteBuf readReusablePacket(boolean traceEnable) throws IOException
      Description copied from interface: Reader
      Get next MySQL packet. Packet is expected to have size < 16M and will use if possible an internal cached buffer. This packet bytes are expect to be read immediately
      Specified by:
      readReusablePacket in interface Reader
      Parameters:
      traceEnable - must trace pacjet
      Returns:
      Readable byte array packet.
      Throws:
      IOException - if socket exception occur.
    • readPacket

      public byte[] readPacket(boolean traceEnable) throws IOException
      Get next MySQL packet. If packet is more than 16M, read as many packet needed to finish reading MySQL packet. (first that has not length = 16Mb)
      Specified by:
      readPacket in interface Reader
      Parameters:
      traceEnable - must trace packet.
      Returns:
      array packet.
      Throws:
      IOException - if socket exception occur.
    • skipPacket

      public void skipPacket() throws IOException
      Description copied from interface: Reader
      Skip next MySQL packet. Packet is expected to have size < 16M
      Specified by:
      skipPacket in interface Reader
      Throws:
      IOException - if socket exception occur.
    • getSequence

      public MutableByte getSequence()
      Description copied from interface: Reader
      Get current sequence object
      Specified by:
      getSequence in interface Reader
      Returns:
      current sequence
    • close

      public void close() throws IOException
      Description copied from interface: Reader
      Close stream
      Specified by:
      close in interface Reader
      Throws:
      IOException - if any error occurs
    • setServerThreadId

      public void setServerThreadId(Long serverThreadId, HostAddress hostAddress)
      Set server thread id.
      Specified by:
      setServerThreadId in interface Reader
      Parameters:
      serverThreadId - current server thread id.
      hostAddress - host information