Class AbstractSessionInputBuffer

java.lang.Object
org.apache.http.impl.io.AbstractSessionInputBuffer
All Implemented Interfaces:
BufferInfo, SessionInputBuffer
Direct Known Subclasses:
SocketInputBuffer

@Deprecated public abstract class AbstractSessionInputBuffer extends Object implements SessionInputBuffer, BufferInfo
Deprecated.
Abstract base class for session input buffers that stream data from an arbitrary InputStream. This class buffers input data in an internal byte array for optimal input performance.

readLine(CharArrayBuffer) and readLine() methods of this class treat a lone LF as valid line delimiters in addition to CR-LF required by the HTTP specification.

Since:
4.0
  • Field Details

    • inStream

      private InputStream inStream
      Deprecated.
    • buffer

      private byte[] buffer
      Deprecated.
    • lineBuffer

      private ByteArrayBuffer lineBuffer
      Deprecated.
    • charset

      private Charset charset
      Deprecated.
    • ascii

      private boolean ascii
      Deprecated.
    • maxLineLen

      private int maxLineLen
      Deprecated.
    • minChunkLimit

      private int minChunkLimit
      Deprecated.
    • metrics

      private HttpTransportMetricsImpl metrics
      Deprecated.
    • onMalformedCharAction

      private CodingErrorAction onMalformedCharAction
      Deprecated.
    • onUnmappableCharAction

      private CodingErrorAction onUnmappableCharAction
      Deprecated.
    • bufferPos

      private int bufferPos
      Deprecated.
    • bufferLen

      private int bufferLen
      Deprecated.
    • decoder

      private CharsetDecoder decoder
      Deprecated.
    • cbuf

      private CharBuffer cbuf
      Deprecated.
  • Constructor Details

    • AbstractSessionInputBuffer

      public AbstractSessionInputBuffer()
      Deprecated.
  • Method Details

    • init

      protected void init(InputStream inputStream, int bufferSize, HttpParams params)
      Deprecated.
      Initializes this session input buffer.
      Parameters:
      inputStream - the source input stream.
      bufferSize - the size of the internal buffer.
      params - HTTP parameters.
    • createTransportMetrics

      protected HttpTransportMetricsImpl createTransportMetrics()
      Deprecated.
      Since:
      4.1
    • capacity

      public int capacity()
      Deprecated.
      Description copied from interface: BufferInfo
      Returns total capacity of the buffer
      Specified by:
      capacity in interface BufferInfo
      Returns:
      total capacity
      Since:
      4.1
    • length

      public int length()
      Deprecated.
      Description copied from interface: BufferInfo
      Return length data stored in the buffer
      Specified by:
      length in interface BufferInfo
      Returns:
      data length
      Since:
      4.1
    • available

      public int available()
      Deprecated.
      Description copied from interface: BufferInfo
      Returns available space in the buffer.
      Specified by:
      available in interface BufferInfo
      Returns:
      available space.
      Since:
      4.1
    • fillBuffer

      protected int fillBuffer() throws IOException
      Deprecated.
      Throws:
      IOException
    • hasBufferedData

      protected boolean hasBufferedData()
      Deprecated.
    • read

      public int read() throws IOException
      Deprecated.
      Description copied from interface: SessionInputBuffer
      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.
      Specified by:
      read in interface SessionInputBuffer
      Returns:
      the next byte of data, or -1 if the end of the stream is reached.
      Throws:
      IOException - if an I/O error occurs.
    • read

      public int read(byte[] b, int off, int len) throws IOException
      Deprecated.
      Description copied from interface: SessionInputBuffer
      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.

      Specified by:
      read in interface SessionInputBuffer
      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.
    • read

      public int read(byte[] b) throws IOException
      Deprecated.
      Description copied from interface: SessionInputBuffer
      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.
      Specified by:
      read in interface SessionInputBuffer
      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.
    • locateLF

      private int locateLF()
      Deprecated.
    • readLine

      public int readLine(CharArrayBuffer charbuffer) throws IOException
      Deprecated.
      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.

      This method treats a lone LF as a valid line delimiters in addition to CR-LF required by the HTTP specification.

      Specified by:
      readLine in interface SessionInputBuffer
      Parameters:
      charbuffer - the line buffer.
      Returns:
      one line of characters
      Throws:
      IOException - if an I/O error occurs.
    • lineFromLineBuffer

      private int lineFromLineBuffer(CharArrayBuffer charbuffer) throws IOException
      Deprecated.
      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.

      This method treats a lone LF as a valid line delimiters in addition to CR-LF required by the HTTP specification.

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

      private int lineFromReadBuffer(CharArrayBuffer charbuffer, int position) throws IOException
      Deprecated.
      Throws:
      IOException
    • appendDecoded

      private int appendDecoded(CharArrayBuffer charbuffer, ByteBuffer bbuf) throws IOException
      Deprecated.
      Throws:
      IOException
    • handleDecodingResult

      private int handleDecodingResult(CoderResult result, CharArrayBuffer charbuffer, ByteBuffer bbuf) throws IOException
      Deprecated.
      Throws:
      IOException
    • readLine

      public String readLine() throws IOException
      Deprecated.
      Description copied from interface: SessionInputBuffer
      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.

      Specified by:
      readLine in interface SessionInputBuffer
      Returns:
      HTTP line as a string
      Throws:
      IOException - if an I/O error occurs.
    • getMetrics

      public HttpTransportMetrics getMetrics()
      Deprecated.
      Description copied from interface: SessionInputBuffer
      Returns HttpTransportMetrics for this session buffer.
      Specified by:
      getMetrics in interface SessionInputBuffer
      Returns:
      transport metrics.