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[]
cacheData
private int
cacheEnd
private int
cachePos
private int
compressPacketSeq
private byte[]
header
private java.io.InputStream
inputStream
private static Logger
logger
private static int
MAX_PACKET_SIZE
private int
maxQuerySizeToLog
private int
packetSeq
private static int
REUSABLE_BUFFER_LENGTH
private byte[]
reusableArray
private java.lang.String
serverThreadLog
private long
threadId
private LruTraceCache
traceCache
-
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 void
cache(byte[] rawBytes, int length)
void
close()
int
getCompressLastPacketSeq()
java.io.InputStream
getInputStream()
int
getLastPacketSeq()
private byte[]
getNextCachePacket()
Buffer
getPacket(boolean reUsable)
byte[]
getPacketArray(boolean reUsable)
Get next packet.private void
readBlocking(byte[] arr, int length)
private void
readCompressBlocking(byte[] arr, int compressedLength, int decompressedLength)
void
setServerThreadId(long serverThreadId, java.lang.Boolean isMaster)
Set server thread id.void
setTraceCache(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:
getPacket
in interfacePacketInputStream
- Throws:
java.io.IOException
-
getPacketArray
public byte[] getPacketArray(boolean reUsable) throws java.io.IOException
Get next packet. Packet can be compressed, and if so, can contain many standard packet.- Specified by:
getPacketArray
in 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:
getLastPacketSeq
in interfacePacketInputStream
-
getCompressLastPacketSeq
public int getCompressLastPacketSeq()
- Specified by:
getCompressLastPacketSeq
in interfacePacketInputStream
-
close
public void close() throws java.io.IOException
- Specified by:
close
in interfacePacketInputStream
- Throws:
java.io.IOException
-
setServerThreadId
public void setServerThreadId(long serverThreadId, java.lang.Boolean isMaster)
Set server thread id.- Specified by:
setServerThreadId
in interfacePacketInputStream
- Parameters:
serverThreadId
- current server thread id.isMaster
- is server master
-
setTraceCache
public void setTraceCache(LruTraceCache traceCache)
- Specified by:
setTraceCache
in interfacePacketInputStream
-
getInputStream
public java.io.InputStream getInputStream()
- Specified by:
getInputStream
in interfacePacketInputStream
-
-