org.apache.cxf.transport.http.asyncclient
Class SharedInputBuffer
java.lang.Object
org.apache.http.nio.util.ExpandableBuffer
org.apache.cxf.transport.http.asyncclient.SharedInputBuffer
- All Implemented Interfaces:
- org.apache.http.nio.util.BufferInfo
@ThreadSafe
public class SharedInputBuffer
- extends org.apache.http.nio.util.ExpandableBuffer
Content buffer 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.
| Fields inherited from class org.apache.http.nio.util.ExpandableBuffer |
buffer, INPUT_MODE, OUTPUT_MODE |
|
Constructor Summary |
SharedInputBuffer(int buffersize,
org.apache.http.nio.util.ByteBufferAllocator allocator)
|
| Methods inherited from class org.apache.http.nio.util.ExpandableBuffer |
clear, ensureCapacity, expand, getMode, setInputMode, setOutputMode, toString |
SharedInputBuffer
public SharedInputBuffer(int buffersize,
org.apache.http.nio.util.ByteBufferAllocator allocator)
reset
public void reset()
consumeContent
public int consumeContent(org.apache.http.nio.ContentDecoder decoder,
org.apache.http.nio.IOControl ioc)
throws IOException
- Throws:
IOException
hasData
public boolean hasData()
- Overrides:
hasData in class org.apache.http.nio.util.ExpandableBuffer
available
public int available()
- Specified by:
available in interface org.apache.http.nio.util.BufferInfo- Overrides:
available in class org.apache.http.nio.util.ExpandableBuffer
capacity
public int capacity()
- Specified by:
capacity in interface org.apache.http.nio.util.BufferInfo- Overrides:
capacity in class org.apache.http.nio.util.ExpandableBuffer
length
public int length()
- Specified by:
length in interface org.apache.http.nio.util.BufferInfo- Overrides:
length in class org.apache.http.nio.util.ExpandableBuffer
waitForData
protected void waitForData(int waitPos)
throws IOException
- Throws:
IOException
close
public void close()
shutdown
public void shutdown()
isShutdown
protected boolean isShutdown()
isEndOfStream
protected boolean isEndOfStream()
read
public int read()
throws IOException
- Throws:
IOException
read
public int read(byte[] b,
int off,
int len)
throws IOException
- Throws:
IOException
read
public int read(byte[] b)
throws IOException
- Throws:
IOException
Apache CXF