org.mariadb.jdbc.internal.io.output
Class AbstractPacketOutputStream

java.lang.Object
  extended by java.io.OutputStream
      extended by java.io.FilterOutputStream
          extended by org.mariadb.jdbc.internal.io.output.AbstractPacketOutputStream
All Implemented Interfaces:
Closeable, Flushable, PacketOutputStream
Direct Known Subclasses:
CompressPacketOutputStream, StandardPacketOutputStream

public abstract class AbstractPacketOutputStream
extends FilterOutputStream
implements PacketOutputStream


Field Summary
protected  byte[] buf
           
protected  long cmdLength
           
protected static Logger logger
           
protected  int maxAllowedPacket
           
protected  int maxQuerySizeToLog
           
protected  boolean permitTrace
           
protected  int pos
           
protected  int seqNo
           
protected  String serverThreadLog
           
protected  LruTraceCache traceCache
           
 
Fields inherited from class java.io.FilterOutputStream
out
 
Constructor Summary
AbstractPacketOutputStream(OutputStream out, int maxQuerySizeToLog)
          Common feature to write data into socket, creating MySQL Packet.
 
Method Summary
 void checkMaxAllowedLength(int length)
          Count query size.
 boolean checkRemainingSize(int len)
           
 void flush()
          Send packet to socket.
protected abstract  void flushBuffer(boolean commandEnd)
           
 int getMaxAllowedPacket()
           
abstract  int getMaxPacketLength()
           
 OutputStream getOutputStream()
           
 boolean isAllowedCmdLength()
           
 void permitTrace(boolean permitTrace)
           
abstract  void setMaxAllowedPacket(int maxAllowedPacket)
           
 void setServerThreadId(long serverThreadId, 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(InputStream is, boolean escape, boolean noBackslashEscapes)
          Write stream into socket.
 void write(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(Reader reader, boolean escape, boolean noBackslashEscapes)
          Write reader into socket.
 void write(Reader reader, long length, boolean escape, boolean noBackslashEscapes)
          Write reader into socket.
 void write(String str)
           
 void write(String str, boolean escape, boolean noBackslashEscapes)
          Write string to socket.
 void writeBytes(byte value, int len)
          Write byte value, len times into buffer. flush buffer if too small.
 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. flush buffer if too small.
 void writeLong(long value)
          Write long value into buffer. flush buffer if too small.
 void writeShort(short value)
          Write short value into buffer. flush buffer if too small.
 
Methods inherited from class java.io.FilterOutputStream
close
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.mariadb.jdbc.internal.io.output.PacketOutputStream
close
 

Field Detail

logger

protected static Logger logger

buf

protected byte[] buf

pos

protected int pos

maxAllowedPacket

protected int maxAllowedPacket

maxQuerySizeToLog

protected int maxQuerySizeToLog

cmdLength

protected long cmdLength

permitTrace

protected boolean permitTrace

seqNo

protected int seqNo

serverThreadLog

protected String serverThreadLog

traceCache

protected LruTraceCache traceCache
Constructor Detail

AbstractPacketOutputStream

public AbstractPacketOutputStream(OutputStream out,
                                  int maxQuerySizeToLog)
Common feature to write data into socket, creating MySQL Packet.

Parameters:
out - socket outputStream
maxQuerySizeToLog - maximum query size to log
Method Detail

getMaxPacketLength

public abstract int getMaxPacketLength()

startPacket

public abstract void startPacket(int seqNo)
Specified by:
startPacket in interface PacketOutputStream

flushBuffer

protected abstract void flushBuffer(boolean commandEnd)
                             throws IOException
Throws:
IOException

writeEmptyPacket

public void writeEmptyPacket(int seqNo)
                      throws IOException
Send empty packet.

Specified by:
writeEmptyPacket in interface PacketOutputStream
Parameters:
seqNo - packet sequence
Throws:
IOException - if socket error occur.

writeEmptyPacket

public abstract void writeEmptyPacket()
                               throws IOException
Specified by:
writeEmptyPacket in interface PacketOutputStream
Throws:
IOException

flush

public void flush()
           throws IOException
Send packet to socket.

Specified by:
flush in interface Flushable
Specified by:
flush in interface PacketOutputStream
Overrides:
flush in class FilterOutputStream
Throws:
IOException - if socket error occur.

checkRemainingSize

public boolean checkRemainingSize(int len)
Specified by:
checkRemainingSize in interface PacketOutputStream

checkMaxAllowedLength

public void checkMaxAllowedLength(int length)
                           throws MaxAllowedPacketException
Count query size. If query size is greater than max_allowed_packet and nothing has been already send, throw an exception to avoid having the connection closed.

Parameters:
length - additional length to query size
Throws:
MaxAllowedPacketException - if query has not to be send.

isAllowedCmdLength

public boolean isAllowedCmdLength()
Specified by:
isAllowedCmdLength in interface PacketOutputStream

getOutputStream

public OutputStream getOutputStream()
Specified by:
getOutputStream in interface PacketOutputStream

writeShort

public void writeShort(short value)
                throws IOException
Write short value into buffer. flush buffer if too small.

Specified by:
writeShort in interface PacketOutputStream
Parameters:
value - short value
Throws:
IOException - if socket error occur

writeInt

public void writeInt(int value)
              throws IOException
Write int value into buffer. flush buffer if too small.

Specified by:
writeInt in interface PacketOutputStream
Parameters:
value - int value
Throws:
IOException - if socket error occur

writeLong

public void writeLong(long value)
               throws IOException
Write long value into buffer. flush buffer if too small.

Specified by:
writeLong in interface PacketOutputStream
Parameters:
value - long value
Throws:
IOException - if socket error occur

writeBytes

public void writeBytes(byte value,
                       int len)
                throws IOException
Write byte value, len times into buffer. flush buffer if too small.

Specified by:
writeBytes in interface PacketOutputStream
Parameters:
value - byte value
len - number of time to write value.
Throws:
IOException - if socket error occur.

writeFieldLength

public void writeFieldLength(long length)
                      throws IOException
Write field length into buffer, flush socket if needed.

Specified by:
writeFieldLength in interface PacketOutputStream
Parameters:
length - field length
Throws:
IOException - if socket error occur.

write

public void write(int value)
           throws IOException
Write byte into buffer, flush buffer to socket if needed.

Specified by:
write in interface PacketOutputStream
Overrides:
write in class FilterOutputStream
Parameters:
value - byte to send
Throws:
IOException - if socket error occur.

write

public void write(byte[] arr)
           throws IOException
Specified by:
write in interface PacketOutputStream
Overrides:
write in class FilterOutputStream
Throws:
IOException

write

public void write(byte[] arr,
                  int off,
                  int len)
           throws IOException
Write byte array to buffer. If buffer is full, flush socket.

Specified by:
write in interface PacketOutputStream
Overrides:
write in class FilterOutputStream
Parameters:
arr - byte array
off - offset
len - byte length to write
Throws:
IOException - if socket error occur

write

public void write(String str)
           throws IOException
Specified by:
write in interface PacketOutputStream
Throws:
IOException

write

public void write(String str,
                  boolean escape,
                  boolean noBackslashEscapes)
           throws IOException
Write string to socket.

Specified by:
write in interface PacketOutputStream
Parameters:
str - string
escape - must be escape
noBackslashEscapes - escape method
Throws:
IOException - if socket error occur

write

public void write(InputStream is,
                  boolean escape,
                  boolean noBackslashEscapes)
           throws IOException
Write stream into socket.

Specified by:
write in interface PacketOutputStream
Parameters:
is - inputStream
escape - must be escape
noBackslashEscapes - escape method
Throws:
IOException - if socket error occur

write

public void write(InputStream is,
                  long length,
                  boolean escape,
                  boolean noBackslashEscapes)
           throws IOException
Write stream into socket.

Specified by:
write in interface PacketOutputStream
Parameters:
is - inputStream
length - write length
escape - must be escape
noBackslashEscapes - escape method
Throws:
IOException - if socket error occur

write

public void write(Reader reader,
                  boolean escape,
                  boolean noBackslashEscapes)
           throws IOException
Write reader into socket.

Specified by:
write in interface PacketOutputStream
Parameters:
reader - reader
escape - must be escape
noBackslashEscapes - escape method
Throws:
IOException - if socket error occur

write

public void write(Reader reader,
                  long length,
                  boolean escape,
                  boolean noBackslashEscapes)
           throws IOException
Write reader into socket.

Specified by:
write in interface PacketOutputStream
Parameters:
reader - reader
length - write length
escape - must be escape
noBackslashEscapes - escape method
Throws:
IOException - if socket error occur

writeBytesEscaped

public void writeBytesEscaped(byte[] bytes,
                              int len,
                              boolean noBackslashEscapes)
                       throws IOException
Write escape bytes to socket.

Specified by:
writeBytesEscaped in interface PacketOutputStream
Parameters:
bytes - bytes
len - len to write
noBackslashEscapes - escape method
Throws:
IOException - if socket error occur

getMaxAllowedPacket

public int getMaxAllowedPacket()
Specified by:
getMaxAllowedPacket in interface PacketOutputStream

setMaxAllowedPacket

public abstract void setMaxAllowedPacket(int maxAllowedPacket)
Specified by:
setMaxAllowedPacket in interface PacketOutputStream

permitTrace

public void permitTrace(boolean permitTrace)
Specified by:
permitTrace in interface PacketOutputStream

setServerThreadId

public void setServerThreadId(long serverThreadId,
                              Boolean isMaster)
Set server thread id.

Specified by:
setServerThreadId in interface PacketOutputStream
Parameters:
serverThreadId - current server thread id.
isMaster - is server master

setTraceCache

public void setTraceCache(LruTraceCache traceCache)
Specified by:
setTraceCache in interface PacketOutputStream


Copyright © 2017. All rights reserved.