org.apache.hc.core5.http.nio

## Interface SessionInputBuffer

-     public interface SessionInputBuffer

  Session input buffer for HTTP/1.1 non-blocking connections.

  This interface facilitates intermediate buffering of input data streamed from a source channel and provides methods for reading lines of text.

  Since:
    4.0

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `int` | `fill(ReadableByteChannel src)` Makes an attempt to fill the buffer with data from the given `ReadableByteChannel`.
    `boolean` | `hasData()` Determines if the buffer contains data.
    `int` | `length()` Returns the length of this buffer.
    `int` | `read()` Reads one byte from the buffer.
    `int` | `read(ByteBuffer dst)` Reads a sequence of bytes from this buffer into the destination buffer.
    `int` | `read(ByteBuffer dst, int maxLen)` Reads a sequence of bytes from this buffer into the destination buffer, up to the given maximum limit.
    `int` | `read(WritableByteChannel dst)` Reads a sequence of bytes from this buffer into the destination channel.
    `int` | `read(WritableByteChannel dst, int maxLen)` Reads a sequence of bytes from this buffer into the destination channel, up to the given maximum limit.
    `boolean` | `readLine(CharArrayBuffer dst, boolean endOfStream)` Attempts to transfer a complete line of characters up to a line delimiter from this buffer to the destination buffer.

- - ### Method Detail

    - #### hasData

          boolean hasData()

      Determines if the buffer contains data.
      Returns:
        `true` if there is data in the buffer, `false` otherwise.

    - #### length

          int length()

      Returns the length of this buffer.
      Returns:
        buffer length.

    - #### fill

          int fill(ReadableByteChannel src)
                   throws IOException

      Makes an attempt to fill the buffer with data from the given `ReadableByteChannel`.
      Parameters:
        `src` - 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

          int read()

      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.
      Returns:
        one byte

    - #### read

          int read(ByteBuffer dst,
                 int maxLen)

      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.
      Parameters:
        `dst` - the destination buffer.
        `maxLen` - the maximum number of bytes to be read.
      Returns:
        The number of bytes read, possibly zero.

    - #### read

          int read(ByteBuffer dst)

      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.
      Parameters:
        `dst` - the destination buffer.
      Returns:
        The number of bytes read, possibly zero.

    - #### read

          int read(WritableByteChannel dst,
                 int maxLen)
                   throws IOException

      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.
      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

          int read(WritableByteChannel dst)
                   throws IOException

      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.
      Parameters:
        `dst` - the destination channel.
      Returns:
        The number of bytes read, possibly zero.
      Throws:
        `IOException` - in case of an I/O error.

    - #### readLine

          boolean readLine(CharArrayBuffer dst,
                         boolean endOfStream)
                           throws IOException

      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.

      Parameters:
        `dst` - 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:
        `CharacterCodingException` - in case a character encoding or decoding error occurs.
        `MessageConstraintException` - in case a message constraint violation.
        `IOException`

Copyright © 2005–2022 The Apache Software Foundation. All rights reserved.