org.apache.cxf.transport.http.asyncclient
Class SharedOutputBuffer
java.lang.Object
org.apache.http.nio.util.ExpandableBuffer
org.apache.cxf.transport.http.asyncclient.SharedOutputBuffer
- All Implemented Interfaces:
- org.apache.http.nio.util.BufferInfo
@ThreadSafe
public class SharedOutputBuffer
- 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 expected to transfer data from the buffer to
ContentEncoder
by calling #produceContent(ContentEncoder)
.
The worker thread is expected to write data to the buffer by calling
write(int)
, write(byte[], int, int)
or writeCompleted()
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 |
SharedOutputBuffer(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 |
SharedOutputBuffer
public SharedOutputBuffer(int buffersize,
org.apache.http.nio.util.ByteBufferAllocator allocator)
reset
public void reset()
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
produceContent
public int produceContent(org.apache.http.nio.ContentEncoder encoder,
org.apache.http.nio.IOControl ioc)
throws IOException
- Throws:
IOException
close
public void close()
shutdown
public void shutdown()
copy
public int copy(InputStream in)
throws IOException
- Throws:
IOException
write
public void write(byte[] b,
int off,
int len)
throws IOException
- Throws:
IOException
write
public int write(ByteBuffer b)
throws IOException
- Throws:
IOException
write
public void write(byte[] b)
throws IOException
- Throws:
IOException
write
public void write(int b)
throws IOException
- Throws:
IOException
flush
public void flush()
throws IOException
- Throws:
IOException
writeCompleted
public void writeCompleted()
throws IOException
- Throws:
IOException
Apache CXF