Class WriteBuffer

java.lang.Object
org.h2.mvstore.WriteBuffer

public class WriteBuffer extends Object
An auto-resize buffer to write data into a ByteBuffer.
  • Field Details

    • MAX_REUSE_CAPACITY

      private static final int MAX_REUSE_CAPACITY
      The maximum size of the buffer in order to be re-used after a clear operation.
      See Also:
    • MIN_GROW

      private static final int MIN_GROW
      The minimum number of bytes to grow a buffer at a time.
      See Also:
    • reuse

      private ByteBuffer reuse
      The buffer that is used after a clear operation.
    • buff

      private ByteBuffer buff
      The current buffer (may be replaced if it is too small).
  • Constructor Details

    • WriteBuffer

      public WriteBuffer(int initialSize)
    • WriteBuffer

      public WriteBuffer()
  • Method Details

    • putVarInt

      public WriteBuffer putVarInt(int x)
      Write a variable size integer.
      Parameters:
      x - the value
      Returns:
      this
    • putVarLong

      public WriteBuffer putVarLong(long x)
      Write a variable size long.
      Parameters:
      x - the value
      Returns:
      this
    • putStringData

      public WriteBuffer putStringData(String s, int len)
      Write the characters of a string in a format similar to UTF-8.
      Parameters:
      s - the string
      len - the number of characters to write
      Returns:
      this
    • put

      public WriteBuffer put(byte x)
      Put a byte.
      Parameters:
      x - the value
      Returns:
      this
    • putChar

      public WriteBuffer putChar(char x)
      Put a character.
      Parameters:
      x - the value
      Returns:
      this
    • putShort

      public WriteBuffer putShort(short x)
      Put a short.
      Parameters:
      x - the value
      Returns:
      this
    • putInt

      public WriteBuffer putInt(int x)
      Put an integer.
      Parameters:
      x - the value
      Returns:
      this
    • putLong

      public WriteBuffer putLong(long x)
      Put a long.
      Parameters:
      x - the value
      Returns:
      this
    • putFloat

      public WriteBuffer putFloat(float x)
      Put a float.
      Parameters:
      x - the value
      Returns:
      this
    • putDouble

      public WriteBuffer putDouble(double x)
      Put a double.
      Parameters:
      x - the value
      Returns:
      this
    • put

      public WriteBuffer put(byte[] bytes)
      Put a byte array.
      Parameters:
      bytes - the value
      Returns:
      this
    • put

      public WriteBuffer put(byte[] bytes, int offset, int length)
      Put a byte array.
      Parameters:
      bytes - the value
      offset - the source offset
      length - the number of bytes
      Returns:
      this
    • put

      public WriteBuffer put(ByteBuffer src)
      Put the contents of a byte buffer.
      Parameters:
      src - the source buffer
      Returns:
      this
    • limit

      public WriteBuffer limit(int newLimit)
      Set the limit, possibly growing the buffer.
      Parameters:
      newLimit - the new limit
      Returns:
      this
    • capacity

      public int capacity()
      Get the capacity.
      Returns:
      the capacity
    • position

      public WriteBuffer position(int newPosition)
      Set the position.
      Parameters:
      newPosition - the new position
      Returns:
      the new position
    • limit

      public int limit()
      Get the limit.
      Returns:
      the limit
    • position

      public int position()
      Get the current position.
      Returns:
      the position
    • get

      public WriteBuffer get(byte[] dst)
      Copy the data into the destination array.
      Parameters:
      dst - the destination array
      Returns:
      this
    • putInt

      public WriteBuffer putInt(int index, int value)
      Update an integer at the given index.
      Parameters:
      index - the index
      value - the value
      Returns:
      this
    • putShort

      public WriteBuffer putShort(int index, short value)
      Update a short at the given index.
      Parameters:
      index - the index
      value - the value
      Returns:
      this
    • clear

      public WriteBuffer clear()
      Clear the buffer after use.
      Returns:
      this
    • getBuffer

      public ByteBuffer getBuffer()
      Get the byte buffer.
      Returns:
      the byte buffer
    • ensureCapacity

      private ByteBuffer ensureCapacity(int len)
    • grow

      private void grow(int additional)