Apache CXF API

org.apache.cxf.transport.http.asyncclient
Class SharedOutputBuffer

java.lang.Object
  extended by org.apache.http.nio.util.ExpandableBuffer
      extended by 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.


Field Summary
 
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)
           
 
Method Summary
 int available()
           
 int capacity()
           
 void close()
           
 int copy(InputStream in)
           
 void flush()
           
 boolean hasData()
           
 int length()
           
 int produceContent(org.apache.http.nio.ContentEncoder encoder, org.apache.http.nio.IOControl ioc)
           
 void reset()
           
 void shutdown()
           
 void write(byte[] b)
           
 void write(byte[] b, int off, int len)
           
 int write(ByteBuffer b)
           
 void write(int b)
           
 void writeCompleted()
           
 
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

SharedOutputBuffer

public SharedOutputBuffer(int buffersize,
                          org.apache.http.nio.util.ByteBufferAllocator allocator)
Method Detail

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 API

Apache CXF