Class PacketReader

  • All Implemented Interfaces:
    Reader

    public class PacketReader
    extends java.lang.Object
    implements Reader
    Packet reader
    • Field Detail

      • REUSABLE_BUFFER_LENGTH

        private static final int REUSABLE_BUFFER_LENGTH
        See Also:
        Constant Field Values
      • logger

        private static final Logger logger
      • header

        private final byte[] header
      • reusableArray

        private final byte[] reusableArray
      • inputStream

        private final java.io.InputStream inputStream
      • maxQuerySizeToLog

        private final int maxQuerySizeToLog
      • serverThreadLog

        private java.lang.String serverThreadLog
    • Constructor Detail

      • PacketReader

        public PacketReader​(java.io.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 Detail

      • 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 java.io.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:
        java.io.IOException - if socket exception occur.
      • readReusablePacket

        public ReadableByteBuf readReusablePacket​(boolean traceEnable)
                                           throws java.io.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:
        java.io.IOException - if socket exception occur.
      • readPacket

        public byte[] readPacket​(boolean traceEnable)
                          throws java.io.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:
        java.io.IOException - if socket exception occur.
      • skipPacket

        public void skipPacket()
                        throws java.io.IOException
        Description copied from interface: Reader
        Skip next MySQL packet. Packet is expected to have size < 16M
        Specified by:
        skipPacket in interface Reader
        Throws:
        java.io.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 java.io.IOException
        Description copied from interface: Reader
        Close stream
        Specified by:
        close in interface Reader
        Throws:
        java.io.IOException - if any error occurs
      • setServerThreadId

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