public abstract class AbstractPacketOutputStream extends java.io.FilterOutputStream implements PacketOutputStream
| Modifier and Type | Field and Description |
|---|---|
private static byte |
BACKSLASH |
protected byte[] |
buf |
private boolean |
bufferContainDataAfterMark |
protected long |
cmdLength |
private static byte |
DBL_QUOTE |
private static int |
LARGE_BUFFER_SIZE |
private int |
mark |
protected int |
maxAllowedPacket |
protected int |
maxQuerySizeToLog |
private static int |
MEDIUM_BUFFER_SIZE |
protected boolean |
permitTrace |
protected int |
pos |
private static byte |
QUOTE |
protected int |
seqNo |
protected java.lang.String |
serverThreadLog |
private static int |
SMALL_BUFFER_SIZE |
protected long |
threadId |
protected LruTraceCache |
traceCache |
private static byte |
ZERO_BYTE |
| Constructor and Description |
|---|
AbstractPacketOutputStream(java.io.OutputStream out,
int maxQuerySizeToLog,
long threadId)
Common feature to write data into socket, creating MariaDB Packet.
|
| Modifier and Type | Method and Description |
|---|---|
boolean |
bufferIsDataAfterMark() |
void |
checkMaxAllowedLength(int length)
Count query size.
|
boolean |
checkRemainingSize(int len) |
boolean |
exceedMaxLength() |
void |
flush()
Send packet to socket.
|
protected abstract void |
flushBuffer(boolean commandEnd) |
void |
flushBufferStopAtMark()
Flush to last mark.
|
int |
getMaxAllowedPacket() |
abstract int |
getMaxPacketLength() |
java.io.OutputStream |
getOutputStream() |
private void |
growBuffer(int len)
Buffer growing use 4 size only to avoid creating/copying that are expensive operations.
|
boolean |
isMarked() |
void |
mark() |
void |
permitTrace(boolean permitTrace) |
byte[] |
resetMark()
Reset mark flag and send bytes after mark flag.
|
abstract void |
setMaxAllowedPacket(int maxAllowedPacket) |
void |
setServerThreadId(long serverThreadId,
java.lang.Boolean isMaster)
Set server thread id.
|
void |
setTraceCache(LruTraceCache traceCache) |
abstract void |
startPacket(int seqNo) |
void |
write(byte[] arr) |
void |
write(byte[] arr,
int off,
int len)
Write byte array to buffer.
|
void |
write(java.io.InputStream is,
boolean escape,
boolean noBackslashEscapes)
Write stream into socket.
|
void |
write(java.io.InputStream is,
long length,
boolean escape,
boolean noBackslashEscapes)
Write stream into socket.
|
void |
write(int value)
Write byte into buffer, flush buffer to socket if needed.
|
void |
write(java.io.Reader reader,
boolean escape,
boolean noBackslashEscapes)
Write reader into socket.
|
void |
write(java.io.Reader reader,
long length,
boolean escape,
boolean noBackslashEscapes)
Write reader into socket.
|
void |
write(java.lang.String str) |
void |
write(java.lang.String str,
boolean escape,
boolean noBackslashEscapes)
Write string to socket.
|
void |
writeBytes(byte value,
int len)
Write byte value, len times into buffer.
|
void |
writeBytesEscaped(byte[] bytes,
int len,
boolean noBackslashEscapes)
Write escape bytes to socket.
|
abstract void |
writeEmptyPacket() |
void |
writeEmptyPacket(int seqNo)
Send empty packet.
|
void |
writeFieldLength(long length)
Write field length into buffer, flush socket if needed.
|
void |
writeInt(int value)
Write int value into buffer.
|
void |
writeLong(long value)
Write long value into buffer.
|
void |
writeShort(short value)
Write short value into buffer.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitclose, initialPacketPosprivate static final byte QUOTE
private static final byte DBL_QUOTE
private static final byte ZERO_BYTE
private static final byte BACKSLASH
private static final int SMALL_BUFFER_SIZE
private static final int MEDIUM_BUFFER_SIZE
private static final int LARGE_BUFFER_SIZE
protected final int maxQuerySizeToLog
protected byte[] buf
protected int pos
protected int maxAllowedPacket
protected long cmdLength
protected boolean permitTrace
protected int seqNo
protected java.lang.String serverThreadLog
protected LruTraceCache traceCache
private int mark
private boolean bufferContainDataAfterMark
protected long threadId
public AbstractPacketOutputStream(java.io.OutputStream out,
int maxQuerySizeToLog,
long threadId)
out - socket outputStreammaxQuerySizeToLog - maximum query size to logthreadId - thread idpublic abstract int getMaxPacketLength()
public abstract void startPacket(int seqNo)
startPacket in interface PacketOutputStreamprotected abstract void flushBuffer(boolean commandEnd)
throws java.io.IOException
java.io.IOExceptionprivate void growBuffer(int len)
throws java.io.IOException
len - length to addjava.io.IOExceptionpublic void writeEmptyPacket(int seqNo)
throws java.io.IOException
writeEmptyPacket in interface PacketOutputStreamseqNo - packet sequencejava.io.IOException - if socket error occur.public abstract void writeEmptyPacket()
throws java.io.IOException
writeEmptyPacket in interface PacketOutputStreamjava.io.IOExceptionpublic void flush()
throws java.io.IOException
flush in interface java.io.Flushableflush in interface PacketOutputStreamflush in class java.io.FilterOutputStreamjava.io.IOException - if socket error occur.public boolean checkRemainingSize(int len)
checkRemainingSize in interface PacketOutputStreampublic void checkMaxAllowedLength(int length)
throws MaxAllowedPacketException
checkMaxAllowedLength in interface PacketOutputStreamlength - additional length to query sizeMaxAllowedPacketException - if query has not to be send.public boolean exceedMaxLength()
exceedMaxLength in interface PacketOutputStreampublic java.io.OutputStream getOutputStream()
getOutputStream in interface PacketOutputStreampublic void writeShort(short value)
throws java.io.IOException
writeShort in interface PacketOutputStreamvalue - short valuejava.io.IOException - if socket error occurpublic void writeInt(int value)
throws java.io.IOException
writeInt in interface PacketOutputStreamvalue - int valuejava.io.IOException - if socket error occurpublic void writeLong(long value)
throws java.io.IOException
writeLong in interface PacketOutputStreamvalue - long valuejava.io.IOException - if socket error occurpublic void writeBytes(byte value,
int len)
throws java.io.IOException
writeBytes in interface PacketOutputStreamvalue - byte valuelen - number of time to write value.java.io.IOException - if socket error occur.public void writeFieldLength(long length)
throws java.io.IOException
writeFieldLength in interface PacketOutputStreamlength - field lengthjava.io.IOException - if socket error occur.public void write(int value)
throws java.io.IOException
write in interface PacketOutputStreamwrite in class java.io.FilterOutputStreamvalue - byte to sendjava.io.IOException - if socket error occur.public void write(byte[] arr)
throws java.io.IOException
write in interface PacketOutputStreamwrite in class java.io.FilterOutputStreamjava.io.IOExceptionpublic void write(byte[] arr,
int off,
int len)
throws java.io.IOException
write in interface PacketOutputStreamwrite in class java.io.FilterOutputStreamarr - byte arrayoff - offsetlen - byte length to writejava.io.IOException - if socket error occurpublic void write(java.lang.String str)
throws java.io.IOException
write in interface PacketOutputStreamjava.io.IOExceptionpublic void write(java.lang.String str,
boolean escape,
boolean noBackslashEscapes)
throws java.io.IOException
write in interface PacketOutputStreamstr - stringescape - must be escapenoBackslashEscapes - escape methodjava.io.IOException - if socket error occurpublic void write(java.io.InputStream is,
boolean escape,
boolean noBackslashEscapes)
throws java.io.IOException
write in interface PacketOutputStreamis - inputStreamescape - must be escapenoBackslashEscapes - escape methodjava.io.IOException - if socket error occurpublic void write(java.io.InputStream is,
long length,
boolean escape,
boolean noBackslashEscapes)
throws java.io.IOException
write in interface PacketOutputStreamis - inputStreamlength - write lengthescape - must be escapenoBackslashEscapes - escape methodjava.io.IOException - if socket error occurpublic void write(java.io.Reader reader,
boolean escape,
boolean noBackslashEscapes)
throws java.io.IOException
write in interface PacketOutputStreamreader - readerescape - must be escapenoBackslashEscapes - escape methodjava.io.IOException - if socket error occurpublic void write(java.io.Reader reader,
long length,
boolean escape,
boolean noBackslashEscapes)
throws java.io.IOException
write in interface PacketOutputStreamreader - readerlength - write lengthescape - must be escapenoBackslashEscapes - escape methodjava.io.IOException - if socket error occurpublic void writeBytesEscaped(byte[] bytes,
int len,
boolean noBackslashEscapes)
throws java.io.IOException
writeBytesEscaped in interface PacketOutputStreambytes - byteslen - len to writenoBackslashEscapes - escape methodjava.io.IOException - if socket error occurpublic int getMaxAllowedPacket()
getMaxAllowedPacket in interface PacketOutputStreampublic abstract void setMaxAllowedPacket(int maxAllowedPacket)
setMaxAllowedPacket in interface PacketOutputStreampublic void permitTrace(boolean permitTrace)
permitTrace in interface PacketOutputStreampublic void setServerThreadId(long serverThreadId,
java.lang.Boolean isMaster)
setServerThreadId in interface PacketOutputStreamserverThreadId - current server thread id.isMaster - is server masterpublic void setTraceCache(LruTraceCache traceCache)
setTraceCache in interface PacketOutputStreampublic void mark()
mark in interface PacketOutputStreampublic boolean isMarked()
isMarked in interface PacketOutputStreampublic void flushBufferStopAtMark()
throws java.io.IOException
flushBufferStopAtMark in interface PacketOutputStreamjava.io.IOException - if flush fail.public boolean bufferIsDataAfterMark()
bufferIsDataAfterMark in interface PacketOutputStreampublic byte[] resetMark()
resetMark in interface PacketOutputStream