|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.apache.http.nio.util.ExpandableBuffer
org.apache.http.nio.util.SharedInputBuffer
@ThreadSafe public class SharedInputBuffer
Implementation of the ContentInputBuffer interface that can be
shared by multiple threads, usually the I/O dispatch of an I/O reactor and
a worker thread.
The I/O dispatch thread is expect to transfer data from ContentDecoder to the buffer
by calling consumeContent(ContentDecoder).
The worker thread is expected to read the data from the buffer by calling
read() or read(byte[], int, int) methods.
In case of an abnormal situation or when no longer needed the buffer must be shut down
using shutdown() method.
| Field Summary |
|---|
| Fields inherited from class org.apache.http.nio.util.ExpandableBuffer |
|---|
buffer, INPUT_MODE, OUTPUT_MODE |
| Constructor Summary | |
|---|---|
SharedInputBuffer(int buffersize,
IOControl ioctrl,
ByteBufferAllocator allocator)
|
|
| Method Summary | |
|---|---|
int |
available()
Returns available capacity of this buffer. |
int |
capacity()
Returns the total capacity of this buffer. |
void |
close()
|
int |
consumeContent(ContentDecoder decoder)
Reads content from the given ContentDecoder and stores it in
this buffer. |
boolean |
hasData()
Determines if the buffer contains data. |
protected boolean |
isEndOfStream()
|
protected boolean |
isShutdown()
|
int |
length()
Returns the length of this buffer. |
int |
read()
Reads one byte from this buffer. |
int |
read(byte[] b)
|
int |
read(byte[] b,
int off,
int len)
Reads up to len bytes of data from this buffer into
an array of bytes. |
void |
reset()
Resets the buffer by clearing its state and stored content. |
void |
shutdown()
|
protected void |
waitForData()
|
| Methods inherited from class org.apache.http.nio.util.ExpandableBuffer |
|---|
clear, ensureCapacity, expand, getMode, setInputMode, setOutputMode, toString |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Constructor Detail |
|---|
public SharedInputBuffer(int buffersize,
IOControl ioctrl,
ByteBufferAllocator allocator)
| Method Detail |
|---|
public void reset()
ContentInputBuffer
reset in interface ContentInputBuffer
public int consumeContent(ContentDecoder decoder)
throws IOException
ContentInputBufferContentDecoder and stores it in
this buffer.
consumeContent in interface ContentInputBufferdecoder - the content decoder.
IOException - in case of an I/O error.public boolean hasData()
ExpandableBuffer
hasData in class ExpandableBuffertrue if there is data in the buffer,
false otherwise.public int available()
ExpandableBuffer
available in interface BufferInfoavailable in class ExpandableBufferpublic int capacity()
ExpandableBuffer
capacity in interface BufferInfocapacity in class ExpandableBufferpublic int length()
ExpandableBuffer
length in interface BufferInfolength in class ExpandableBuffer
protected void waitForData()
throws IOException
IOExceptionpublic void close()
public void shutdown()
protected boolean isShutdown()
protected boolean isEndOfStream()
public int read()
throws IOException
ContentInputBuffer-1 if the end of content stream has been reached.
read in interface ContentInputBufferIOException
public int read(byte[] b,
int off,
int len)
throws IOException
ContentInputBufferlen bytes of data from this buffer into
an array of bytes. The exact number of bytes read depends how many bytes
are stored in the buffer.
If off is negative, or len is negative, or
off+len is greater than the length of the array
b, this method can throw a runtime exception. The exact type
of runtime exception thrown by this method depends on implementation.
This method returns -1 if the end of content stream has been
reached.
read in interface ContentInputBufferb - 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
IOException
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||