Class SessionInputBufferImpl

java.lang.Object
org.apache.hc.core5.http.impl.nio.ExpandableBuffer
org.apache.hc.core5.http.impl.nio.SessionInputBufferImpl
All Implemented Interfaces:
SessionInputBuffer

class SessionInputBufferImpl extends ExpandableBuffer implements SessionInputBuffer
  • Field Details

    • charDecoder

      private final CharsetDecoder charDecoder
    • lineBuffersize

      private final int lineBuffersize
    • maxLineLen

      private final int maxLineLen
    • charbuffer

      private CharBuffer charbuffer
  • Constructor Details

    • SessionInputBufferImpl

      public SessionInputBufferImpl(int bufferSize, int lineBuffersize, int maxLineLen, CharsetDecoder charDecoder)
      Creates SessionInputBufferImpl instance.
      Parameters:
      bufferSize - input buffer size
      lineBuffersize - buffer size for line operations. Has effect only if charDecoder is not null.
      maxLineLen - maximum line length.
      charDecoder - charDecoder to be used for decoding HTTP protocol elements. If null simple type cast will be used for byte to char conversion.
      Since:
      4.4
    • SessionInputBufferImpl

      public SessionInputBufferImpl(int bufferSize, int lineBuffersize, int maxLineLen, Charset charset)
      Since:
      4.3
    • SessionInputBufferImpl

      public SessionInputBufferImpl(int bufferSize, int lineBuffersize, int maxLineLen)
      Since:
      4.3
    • SessionInputBufferImpl

      public SessionInputBufferImpl(int bufferSize, int lineBuffersize)
      Since:
      4.3
    • SessionInputBufferImpl

      public SessionInputBufferImpl(int bufferSize)
      Since:
      4.3
  • Method Details

    • length

      public int length()
      Description copied from class: ExpandableBuffer
      Returns the length of this buffer.

      Sets the mode to output.

      Specified by:
      length in interface SessionInputBuffer
      Overrides:
      length in class ExpandableBuffer
      Returns:
      buffer length.
    • hasData

      public boolean hasData()
      Description copied from class: ExpandableBuffer
      Determines if the buffer contains data.

      Sets the mode to output.

      Specified by:
      hasData in interface SessionInputBuffer
      Overrides:
      hasData in class ExpandableBuffer
      Returns:
      true if there is data in the buffer, false otherwise.
    • capacity

      public int capacity()
      Description copied from class: ExpandableBuffer
      Returns available capacity of this buffer.
      Overrides:
      capacity in class ExpandableBuffer
      Returns:
      buffer length.
    • put

      public void put(ByteBuffer src)
    • fill

      public int fill(ReadableByteChannel channel) throws IOException
      Description copied from interface: SessionInputBuffer
      Makes an attempt to fill the buffer with data from the given ReadableByteChannel.
      Specified by:
      fill in interface SessionInputBuffer
      Parameters:
      channel - the source channel
      Returns:
      The number of bytes read, possibly zero, or -1 if the channel has reached end-of-stream.
      Throws:
      IOException - in case of an I/O error.
    • read

      public int read()
      Description copied from interface: SessionInputBuffer
      Reads one byte from the buffer. If the buffer is empty this method can throw a runtime exception. The exact type of runtime exception thrown by this method depends on implementation.
      Specified by:
      read in interface SessionInputBuffer
      Returns:
      one byte
    • read

      public int read(ByteBuffer dst, int maxLen)
      Description copied from interface: SessionInputBuffer
      Reads a sequence of bytes from this buffer into the destination buffer, up to the given maximum limit. The exact number of bytes transferred depends on availability of data in this buffer and capacity of the destination buffer, but cannot be more than maxLen value.
      Specified by:
      read in interface SessionInputBuffer
      Parameters:
      dst - the destination buffer.
      maxLen - the maximum number of bytes to be read.
      Returns:
      The number of bytes read, possibly zero.
    • read

      public int read(ByteBuffer dst)
      Description copied from interface: SessionInputBuffer
      Reads a sequence of bytes from this buffer into the destination buffer. The exact number of bytes transferred depends on availability of data in this buffer and capacity of the destination buffer.
      Specified by:
      read in interface SessionInputBuffer
      Parameters:
      dst - the destination buffer.
      Returns:
      The number of bytes read, possibly zero.
    • read

      public int read(WritableByteChannel dst, int maxLen) throws IOException
      Description copied from interface: SessionInputBuffer
      Reads a sequence of bytes from this buffer into the destination channel, up to the given maximum limit. The exact number of bytes transferred depends on availability of data in this buffer, but cannot be more than maxLen value.
      Specified by:
      read in interface SessionInputBuffer
      Parameters:
      dst - the destination channel.
      maxLen - the maximum number of bytes to be read.
      Returns:
      The number of bytes read, possibly zero.
      Throws:
      IOException - in case of an I/O error.
    • read

      public int read(WritableByteChannel dst) throws IOException
      Description copied from interface: SessionInputBuffer
      Reads a sequence of bytes from this buffer into the destination channel. The exact number of bytes transferred depends on availability of data in this buffer.
      Specified by:
      read in interface SessionInputBuffer
      Parameters:
      dst - the destination channel.
      Returns:
      The number of bytes read, possibly zero.
      Throws:
      IOException - in case of an I/O error.
    • readLine

      public boolean readLine(CharArrayBuffer lineBuffer, boolean endOfStream) throws IOException
      Description copied from interface: SessionInputBuffer
      Attempts to transfer a complete line of characters up to a line delimiter from this buffer to the destination buffer. If a complete line is available in the buffer, the sequence of chars is transferred to the destination buffer the method returns true. The line delimiter itself is discarded. If a complete line is not available in the buffer, this method returns false without transferring anything to the destination buffer. If endOfStream parameter is set to true this method assumes the end of stream has been reached and the content currently stored in the buffer should be treated as a complete line.

      The choice of a char encoding and line delimiter sequence is up to the specific implementations of this interface.

      Specified by:
      readLine in interface SessionInputBuffer
      Parameters:
      lineBuffer - the destination buffer.
      endOfStream - end of stream flag
      Returns:
      true if a sequence of chars representing a complete line has been transferred to the destination buffer, false otherwise.
      Throws:
      IOException