Interface SessionInputBuffer

  • All Known Implementing Classes:
    SessionInputBufferImpl

    public interface SessionInputBuffer
    Session input buffer for HTTP/1.1 blocking connections.

    This interface facilitates intermediate buffering of input data streamed from an input stream and provides methods for reading lines of text.

    Since:
    4.0
    • Method Summary

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      int available()
      Returns available space in the buffer.
      int capacity()
      Returns total capacity of the buffer
      HttpTransportMetrics getMetrics()
      Returns HttpTransportMetrics for this session buffer.
      int length()
      Returns length data stored in the buffer
      int read​(byte[] b, int off, int len, java.io.InputStream inputStream)
      Reads up to len bytes of data from the session buffer into an array of bytes.
      int read​(byte[] b, java.io.InputStream inputStream)
      Reads some number of bytes from the session buffer and stores them into the buffer array b.
      int read​(java.io.InputStream inputStream)
      Reads the next byte of data from this session buffer.
      int readLine​(CharArrayBuffer buffer, java.io.InputStream inputStream)
      Reads a complete line of characters up to a line delimiter from this session buffer into the given line buffer.
    • Method Detail

      • length

        int length()
        Returns length data stored in the buffer
        Returns:
        data length
      • capacity

        int capacity()
        Returns total capacity of the buffer
        Returns:
        total capacity
      • available

        int available()
        Returns available space in the buffer.
        Returns:
        available space.
      • read

        int read​(byte[] b,
                 int off,
                 int len,
                 java.io.InputStream inputStream)
          throws java.io.IOException
        Reads up to len bytes of data from the session buffer into an array of bytes. An attempt is made to read as many as len bytes, but a smaller number may be read, possibly zero. The number of bytes actually read is returned as an integer.

        This method blocks until input data is available, end of file is detected, or an exception is thrown.

        If off is negative, or len is negative, or off+len is greater than the length of the array b, then an IndexOutOfBoundsException is thrown.

        Parameters:
        b - the buffer into which the data is read.
        off - the start offset in array b at which the data is written.
        len - the maximum number of bytes to read.
        inputStream - Input stream
        Returns:
        the total number of bytes read into the buffer, or -1 if there is no more data because the end of the stream has been reached.
        Throws:
        java.io.IOException - if an I/O error occurs.
      • read

        int read​(byte[] b,
                 java.io.InputStream inputStream)
          throws java.io.IOException
        Reads some number of bytes from the session buffer and stores them into the buffer array b. The number of bytes actually read is returned as an integer. This method blocks until input data is available, end of file is detected, or an exception is thrown.
        Parameters:
        b - the buffer into which the data is read.
        inputStream - Input stream
        Returns:
        the total number of bytes read into the buffer, or -1 is there is no more data because the end of the stream has been reached.
        Throws:
        java.io.IOException - if an I/O error occurs.
      • read

        int read​(java.io.InputStream inputStream)
          throws java.io.IOException
        Reads the next byte of data from this session buffer. The value byte is returned as an int in the range 0 to 255. If no byte is available because the end of the stream has been reached, the value -1 is returned. This method blocks until input data is available, the end of the stream is detected, or an exception is thrown.
        Parameters:
        inputStream - Input stream
        Returns:
        the next byte of data, or -1 if the end of the stream is reached.
        Throws:
        java.io.IOException - if an I/O error occurs.
      • readLine

        int readLine​(CharArrayBuffer buffer,
                     java.io.InputStream inputStream)
              throws java.io.IOException
        Reads a complete line of characters up to a line delimiter from this session buffer into the given line buffer. The number of chars actually read is returned as an integer. The line delimiter itself is discarded. If no char is available because the end of the stream has been reached, the value -1 is returned. This method blocks until input data is available, end of file is detected, or an exception is thrown.

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

        Parameters:
        buffer - the line buffer, one line of characters upon return
        inputStream - Input stream
        Returns:
        the total number of bytes read into the buffer, or -1 is there is no more data because the end of the stream has been reached.
        Throws:
        java.io.IOException - if an I/O error occurs.