Class PacketReader
java.lang.Object
org.mariadb.jdbc.client.socket.impl.PacketReader
- All Implemented Interfaces:
Reader
Packet reader
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final byte[]
private final InputStream
private static final Logger
private static final int
private final int
private final StandardReadableByteBuf
private static final int
private final byte[]
private final MutableByte
private String
-
Constructor Summary
ConstructorsConstructorDescriptionPacketReader
(InputStream in, Configuration conf, MutableByte sequence) Constructor of standard socket MySQL packet stream reader. -
Method Summary
Modifier and TypeMethodDescriptionvoid
close()
Close streamGet current sequence objectreadableBufFromArray
(byte[] buf) Get a readable byte array from byte array.byte[]
readPacket
(boolean traceEnable) Get next MySQL packet.Get next MySQL packet.readReusablePacket
(boolean traceEnable) Get next MySQL packet.void
setServerThreadId
(Long serverThreadId, HostAddress hostAddress) Set server thread id.void
Skip next MySQL packet.
-
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
-
header
private final byte[] header -
reusableArray
private final byte[] reusableArray -
inputStream
-
maxQuerySizeToLog
private final int maxQuerySizeToLog -
sequence
-
readBuf
-
serverThreadLog
-
-
Constructor Details
-
PacketReader
Constructor of standard socket MySQL packet stream reader.- Parameters:
in
- streamconf
- connection optionssequence
- current increment sequence
-
-
Method Details
-
readableBufFromArray
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 interfaceReader
- Parameters:
buf
- byte array to be parsed- Returns:
- array packet.
-
readReusablePacket
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 interfaceReader
- Returns:
- Readable byte array packet.
- Throws:
IOException
- if socket exception occur.
-
readReusablePacket
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 interfaceReader
- Parameters:
traceEnable
- must trace pacjet- Returns:
- Readable byte array packet.
- Throws:
IOException
- if socket exception occur.
-
readPacket
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 interfaceReader
- Parameters:
traceEnable
- must trace packet.- Returns:
- array packet.
- Throws:
IOException
- if socket exception occur.
-
skipPacket
Description copied from interface:Reader
Skip next MySQL packet. Packet is expected to have size < 16M- Specified by:
skipPacket
in interfaceReader
- Throws:
IOException
- if socket exception occur.
-
getSequence
Description copied from interface:Reader
Get current sequence object- Specified by:
getSequence
in interfaceReader
- Returns:
- current sequence
-
close
Description copied from interface:Reader
Close stream- Specified by:
close
in interfaceReader
- Throws:
IOException
- if any error occurs
-
setServerThreadId
Set server thread id.- Specified by:
setServerThreadId
in interfaceReader
- Parameters:
serverThreadId
- current server thread id.hostAddress
- host information
-