public interface

SessionInputBuffer

org.apache.http.io.SessionInputBuffer
Known Indirect Subclasses

Class Overview

Session input buffer for blocking connections. This interface is similar to InputStream class, but it also provides methods for reading lines of text.

Implementing classes are also expected to manage intermediate data buffering for optimal input performance.

Summary

Public Methods
abstract HttpTransportMetrics getMetrics()
Returns HttpTransportMetrics for this session buffer.
abstract boolean isDataAvailable(int timeout)
Blocks until some data becomes available in the session buffer or the given timeout period in milliseconds elapses.
abstract int read(byte[] b)
Reads some number of bytes from the session buffer and stores them into the buffer array b.
abstract int read()
Reads the next byte of data from this session buffer.
abstract int read(byte[] b, int off, int len)
Reads up to len bytes of data from the session buffer into an array of bytes.
abstract int readLine(CharArrayBuffer buffer)
Reads a complete line of characters up to a line delimiter from this session buffer into the given line buffer.
abstract String readLine()
Reads a complete line of characters up to a line delimiter from this session buffer.

Public Methods

public abstract HttpTransportMetrics getMetrics ()

Returns HttpTransportMetrics for this session buffer.

Returns
  • transport metrics.

public abstract boolean isDataAvailable (int timeout)

Blocks until some data becomes available in the session buffer or the given timeout period in milliseconds elapses. If the timeout value is 0 this method blocks indefinitely.

Parameters
timeout in milliseconds.
Returns
  • true if some data is available in the session buffer or false otherwise.
Throws
IOException if an I/O error occurs.

public abstract int read (byte[] b)

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.
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
IOException if an I/O error occurs.

public abstract int read ()

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.

Returns
  • the next byte of data, or -1 if the end of the stream is reached.
Throws
IOException if an I/O error occurs.

public abstract int read (byte[] b, int off, int len)

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.
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
IOException if an I/O error occurs.

public abstract int readLine (CharArrayBuffer buffer)

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.
Returns
  • one line of characters
Throws
IOException if an I/O error occurs.

public abstract String readLine ()

Reads a complete line of characters up to a line delimiter from this session buffer. The line delimiter itself is discarded. If no char is available because the end of the stream has been reached, null 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.

Returns
  • HTTP line as a string
Throws
IOException if an I/O error occurs.