Class Writer

java.lang.Object
org.mariadb.jdbc.client.socket.Writer

public class Writer extends Object
Packet writer
  • Field Details

    • SMALL_BUFFER_SIZE

      public static final int SMALL_BUFFER_SIZE
      initial buffer size
      See Also:
    • sequence

      protected final MutableByte sequence
      packet sequence
    • compressSequence

      protected final MutableByte compressSequence
      compressed packet sequence
    • buf

      protected byte[] buf
      internal buffer
    • pos

      protected int pos
      buffer position
  • Constructor Details

    • Writer

      public Writer(OutputStream out, int maxQuerySizeToLog, Integer maxAllowedPacket, MutableByte sequence, MutableByte compressSequence)
      Common feature to write data into socket, creating MariaDB Packet.
      Parameters:
      out - output stream
      maxQuerySizeToLog - maximum query size to log
      maxAllowedPacket - max allowed packet value if known
      sequence - packet sequence
      compressSequence - compressed packet sequence
  • Method Details

    • pos

      public int pos()
      get current position
      Returns:
      current position
    • pos

      public void pos(int pos) throws IOException
      position setter
      Parameters:
      pos - new position
      Throws:
      IOException - if buffer is not big enough to contains new position
    • getCmdLength

      public long getCmdLength()
      get current command length
      Returns:
      current command length
    • writeByte

      public void writeByte(int value) throws IOException
      Write byte into buf, flush buf to socket if needed.
      Parameters:
      value - byte to send
      Throws:
      IOException - if socket error occur.
    • writeShort

      public void writeShort(short value) throws IOException
      Write short value into buf. flush buf if too small.
      Parameters:
      value - short value
      Throws:
      IOException - if socket error occur
    • writeInt

      public void writeInt(int value) throws IOException
      Write int value into buf. flush buf if too small.
      Parameters:
      value - int value
      Throws:
      IOException - if socket error occur
    • writeLong

      public void writeLong(long value) throws IOException
      Write long value into buf. flush buf if too small.
      Parameters:
      value - long value
      Throws:
      IOException - if socket error occur
    • writeDouble

      public void writeDouble(double value) throws IOException
      Throws:
      IOException
    • writeFloat

      public void writeFloat(float value) throws IOException
      Throws:
      IOException
    • writeBytes

      public void writeBytes(byte[] arr) throws IOException
      Throws:
      IOException
    • writeBytesAtPos

      public void writeBytesAtPos(byte[] arr, int pos)
    • writeBytes

      public void writeBytes(byte[] arr, int off, int len) throws IOException
      Write byte array to buf. If buf is full, flush socket.
      Parameters:
      arr - byte array
      off - offset
      len - byte length to write
      Throws:
      IOException - if socket error occur
    • writeLength

      public void writeLength(long length) throws IOException
      Write field length into buf, flush socket if needed.
      Parameters:
      length - field length
      Throws:
      IOException - if socket error occur.
    • writeAscii

      public void writeAscii(String str) throws IOException
      Throws:
      IOException
    • writeString

      public void writeString(String str) throws IOException
      Throws:
      IOException
    • buf

      public byte[] buf()
      Current buffer
      Returns:
      current buffer
    • writeStringEscaped

      public void writeStringEscaped(String str, boolean noBackslashEscapes) throws IOException
      Write string to socket.
      Parameters:
      str - string
      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.
      Parameters:
      bytes - bytes
      len - len to write
      noBackslashEscapes - escape method
      Throws:
      IOException - if socket error occur
    • writeEmptyPacket

      public void writeEmptyPacket() throws IOException
      Send empty packet.
      Throws:
      IOException - if socket error occur.
    • flush

      public void flush() throws IOException
      Send packet to socket.
      Throws:
      IOException - if socket error occur.
    • flushPipeline

      public void flushPipeline() throws IOException
      Throws:
      IOException
    • throwMaxAllowedLength

      public boolean throwMaxAllowedLength(int length)
    • throwMaxAllowedLengthOr16M

      public boolean throwMaxAllowedLengthOr16M(int length)
    • permitTrace

      public void permitTrace(boolean permitTrace)
    • setServerThreadId

      public void setServerThreadId(Long serverThreadId, HostAddress hostAddress)
      Set server thread id.
      Parameters:
      serverThreadId - current server thread id.
      hostAddress - host information
    • mark

      public void mark()
    • isMarked

      public boolean isMarked()
    • hasFlushed

      public boolean hasFlushed()
    • flushBufferStopAtMark

      public void flushBufferStopAtMark() throws IOException
      Flush to last mark.
      Throws:
      IOException - if flush fail.
    • bufIsDataAfterMark

      public boolean bufIsDataAfterMark()
    • resetMark

      public byte[] resetMark()
      Reset mark flag and send bytes after mark flag.
      Returns:
      bytes after mark flag
    • initPacket

      public void initPacket()
    • writeSocket

      protected void writeSocket(boolean commandEnd) throws IOException
      Flush the internal buf.
      Parameters:
      commandEnd - command end
      Throws:
      IOException - id connection error occur.
    • close

      public void close() throws IOException
      Throws:
      IOException
    • getSequence

      public byte getSequence()