Class ExpandableBuffer

java.lang.Object
org.apache.hc.core5.http.impl.nio.ExpandableBuffer
Direct Known Subclasses:
AbstractSharedBuffer, BufferedData, SessionInputBufferImpl, SessionOutputBufferImpl

@Internal public class ExpandableBuffer extends Object
A buffer that expand its capacity on demand. Internally, this class is backed by an instance of ByteBuffer.

This class is not thread safe.

Since:
4.0
  • Field Details

  • Constructor Details

    • ExpandableBuffer

      protected ExpandableBuffer(int bufferSize)
      Allocates buffer of the given size using the given allocator.

      Sets the mode to input.

      Parameters:
      bufferSize - the buffer size.
  • Method Details

    • mode

      protected ExpandableBuffer.Mode mode()
      Returns the current mode:

      ExpandableBuffer.Mode.INPUT: the buffer is in the input mode.

      ExpandableBuffer.Mode.OUTPUT: the buffer is in the output mode.

      Returns:
      current input/output mode.
    • buffer

      protected ByteBuffer buffer()
    • setOutputMode

      protected void setOutputMode()
      Sets the mode to output. The buffer can now be read from.
    • setInputMode

      protected void setInputMode()
      Sets the mode to input. The buffer can now be written into.
    • expandCapacity

      private void expandCapacity(int capacity)
    • expand

      protected void expand() throws BufferOverflowException
      Expands buffer's capacity.
      Throws:
      BufferOverflowException - in case we get over the maximum allowed value
    • ensureCapacity

      protected void ensureCapacity(int requiredCapacity)
      Ensures the buffer can accommodate the exact required capacity.
      Parameters:
      requiredCapacity - the required capacity.
    • ensureAdjustedCapacity

      protected void ensureAdjustedCapacity(int requiredCapacity)
      Ensures the buffer can accommodate at least the required capacity adjusted to multiples of 1024.
      Parameters:
      requiredCapacity - the required capacity.
    • hasData

      protected boolean hasData()
      Determines if the buffer contains data.

      Sets the mode to output.

      Returns:
      true if there is data in the buffer, false otherwise.
    • length

      protected int length()
      Returns the length of this buffer.

      Sets the mode to output.

      Returns:
      buffer length.
    • capacity

      protected int capacity()
      Returns available capacity of this buffer.
      Returns:
      buffer length.
    • clear

      protected void clear()
      Clears buffer.

      Sets the mode to input.

    • toString

      public String toString()
      Overrides:
      toString in class Object