| 
 | ||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.apache.http.impl.io.SessionInputBufferImpl
public class SessionInputBufferImpl
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.
| Constructor Summary | |
|---|---|
| SessionInputBufferImpl(HttpTransportMetricsImpl metrics,
                       int bufferSize) | |
| SessionInputBufferImpl(HttpTransportMetricsImpl metrics,
                       int bufferSize,
                       int minChunkLimit,
                       MessageConstraints constraints,
                       CharsetDecoder charDecoder)Creates new instance of SessionInputBufferImpl. | |
| Method Summary | |
|---|---|
|  int | available()Returns available space in the buffer. | 
|  void | bind(InputStream inputStream) | 
|  int | capacity()Returns total capacity of the buffer | 
|  void | clear() | 
|  int | fillBuffer() | 
|  HttpTransportMetrics | getMetrics()Returns HttpTransportMetricsfor this session buffer. | 
|  boolean | hasBufferedData() | 
|  boolean | isBound() | 
|  boolean | isDataAvailable(int timeout)Blocks until some data becomes available in the session buffer or the given timeout period in milliseconds elapses. | 
|  int | length()Return length data stored in the buffer | 
|  int | read()Reads the next byte of data from this session buffer. | 
|  int | read(byte[] b)Reads some number of bytes from the session buffer and stores them into the buffer array b. | 
|  int | read(byte[] b,
     int off,
     int len)Reads up to lenbytes of data from the session buffer into
 an array of bytes. | 
|  String | readLine()Reads a complete line of characters up to a line delimiter from this session buffer. | 
|  int | readLine(CharArrayBuffer charbuffer)Reads a complete line of characters up to a line delimiter from this session buffer into the given line buffer. | 
| Methods inherited from class java.lang.Object | 
|---|
| clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | 
| Constructor Detail | 
|---|
public SessionInputBufferImpl(HttpTransportMetricsImpl metrics,
                              int bufferSize,
                              int minChunkLimit,
                              MessageConstraints constraints,
                              CharsetDecoder charDecoder)
metrics - HTTP transport metrics.bufferSize - buffer size. Must be a positive number.minChunkLimit - size limit below which data chunks should be buffered in memory
   in order to minimize native method invocations on the underlying network socket.
   The optimal value of this parameter can be platform specific and defines a trade-off
   between performance of memory copy operations and that of native method invocation.
   If negative default chunk limited will be used.constraints - Message constraints. If null
   MessageConstraints.DEFAULT will be used.charDecoder - CharDecoder to be used for decoding HTTP protocol elements.
   If null simple type cast will be used for byte to char conversion.
public SessionInputBufferImpl(HttpTransportMetricsImpl metrics,
                              int bufferSize)
| Method Detail | 
|---|
public void bind(InputStream inputStream)
public boolean isBound()
public int capacity()
BufferInfo
capacity in interface BufferInfopublic int length()
BufferInfo
length in interface BufferInfopublic int available()
BufferInfo
available in interface BufferInfo
public int fillBuffer()
               throws IOException
IOExceptionpublic boolean hasBufferedData()
public void clear()
public int read()
         throws IOException
SessionInputBufferint 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.
read in interface SessionInputBuffer-1 if the end of the
             stream is reached.
IOException - if an I/O error occurs.
public int read(byte[] b,
                int off,
                int len)
         throws IOException
SessionInputBufferlen 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.
read in interface SessionInputBufferb - 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.
-1 if there is no more data because the end of
             the stream has been reached.
IOException - if an I/O error occurs.
public int read(byte[] b)
         throws IOException
SessionInputBufferb. 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.
read in interface SessionInputBufferb - the buffer into which the data is read.
-1 is there is no more data because the end of
             the stream has been reached.
IOException - if an I/O error occurs.
public int readLine(CharArrayBuffer charbuffer)
             throws IOException
-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.
readLine in interface SessionInputBuffercharbuffer - the line buffer.
IOException - if an I/O error occurs.
public String readLine()
                throws IOException
SessionInputBuffernull 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.
readLine in interface SessionInputBufferIOException - if an I/O error occurs.
public boolean isDataAvailable(int timeout)
                        throws IOException
SessionInputBuffer0 this method blocks indefinitely.
isDataAvailable in interface SessionInputBuffertimeout - in milliseconds.
true if some data is available in the session
   buffer or false otherwise.
IOException - if an I/O error occurs.public HttpTransportMetrics getMetrics()
SessionInputBufferHttpTransportMetrics for this session buffer.
getMetrics in interface SessionInputBuffer| 
 | ||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||