Class DecompressPacketInputStream
- java.lang.Object
-
- org.mariadb.jdbc.internal.io.input.DecompressPacketInputStream
-
- All Implemented Interfaces:
PacketInputStream
public class DecompressPacketInputStream extends java.lang.Object implements PacketInputStream
-
-
Field Summary
Fields Modifier and Type Field Description private byte[]cacheDataprivate intcacheEndprivate intcachePosprivate intcompressPacketSeqprivate byte[]headerprivate java.io.InputStreaminputStreamprivate static Loggerloggerprivate static intMAX_PACKET_SIZEprivate intmaxQuerySizeToLogprivate intpacketSeqprivate static intREUSABLE_BUFFER_LENGTHprivate byte[]reusableArrayprivate java.lang.StringserverThreadLogprivate longthreadIdprivate LruTraceCachetraceCache
-
Constructor Summary
Constructors Constructor Description DecompressPacketInputStream(java.io.InputStream in, int maxQuerySizeToLog, long threadId)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private voidcache(byte[] rawBytes, int length)voidclose()intgetCompressLastPacketSeq()java.io.InputStreamgetInputStream()intgetLastPacketSeq()private byte[]getNextCachePacket()BuffergetPacket(boolean reUsable)byte[]getPacketArray(boolean reUsable)Get next packet.private voidreadBlocking(byte[] arr, int length)private voidreadCompressBlocking(byte[] arr, int compressedLength, int decompressedLength)voidsetServerThreadId(long serverThreadId, java.lang.Boolean isMaster)Set server thread id.voidsetTraceCache(LruTraceCache traceCache)
-
-
-
Field Detail
-
REUSABLE_BUFFER_LENGTH
private static final int REUSABLE_BUFFER_LENGTH
- See Also:
- Constant Field Values
-
MAX_PACKET_SIZE
private static final int MAX_PACKET_SIZE
- 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
-
cacheData
private byte[] cacheData
-
cachePos
private int cachePos
-
cacheEnd
private int cacheEnd
-
packetSeq
private int packetSeq
-
compressPacketSeq
private int compressPacketSeq
-
serverThreadLog
private java.lang.String serverThreadLog
-
traceCache
private LruTraceCache traceCache
-
threadId
private long threadId
-
-
Method Detail
-
getPacket
public Buffer getPacket(boolean reUsable) throws java.io.IOException
- Specified by:
getPacketin interfacePacketInputStream- Throws:
java.io.IOException
-
getPacketArray
public byte[] getPacketArray(boolean reUsable) throws java.io.IOExceptionGet next packet. Packet can be compressed, and if so, can contain many standard packet.- Specified by:
getPacketArrayin interfacePacketInputStream- Parameters:
reUsable- if can use existing reusable buffer to avoid creating array- Returns:
- array packet.
- Throws:
java.io.IOException- if socket exception occur.
-
readCompressBlocking
private void readCompressBlocking(byte[] arr, int compressedLength, int decompressedLength) throws java.io.IOException- Throws:
java.io.IOException
-
readBlocking
private void readBlocking(byte[] arr, int length) throws java.io.IOException- Throws:
java.io.IOException
-
cache
private void cache(byte[] rawBytes, int length)
-
getNextCachePacket
private byte[] getNextCachePacket()
-
getLastPacketSeq
public int getLastPacketSeq()
- Specified by:
getLastPacketSeqin interfacePacketInputStream
-
getCompressLastPacketSeq
public int getCompressLastPacketSeq()
- Specified by:
getCompressLastPacketSeqin interfacePacketInputStream
-
close
public void close() throws java.io.IOException- Specified by:
closein interfacePacketInputStream- Throws:
java.io.IOException
-
setServerThreadId
public void setServerThreadId(long serverThreadId, java.lang.Boolean isMaster)Set server thread id.- Specified by:
setServerThreadIdin interfacePacketInputStream- Parameters:
serverThreadId- current server thread id.isMaster- is server master
-
setTraceCache
public void setTraceCache(LruTraceCache traceCache)
- Specified by:
setTraceCachein interfacePacketInputStream
-
getInputStream
public java.io.InputStream getInputStream()
- Specified by:
getInputStreamin interfacePacketInputStream
-
-