Class SharedOutputBuffer

java.lang.Object
org.apache.http.nio.util.ExpandableBuffer
org.apache.cxf.transport.http.asyncclient.SharedOutputBuffer
All Implemented Interfaces:
org.apache.http.io.BufferInfo, org.apache.http.nio.util.BufferInfo

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, IOControl).

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

    Constructors
    Constructor
    Description
    SharedOutputBuffer(int buffersize, org.apache.http.nio.util.ByteBufferAllocator allocator)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    int
     
    int
     
    void
     
    int
     
    void
     
    boolean
     
    int
     
    int
    produceContent(org.apache.http.nio.ContentEncoder encoder, org.apache.http.nio.IOControl ioc)
     
    void
     
    void
     
    void
    write(byte[] b)
     
    void
    write(byte[] b, int off, int len)
     
    void
    write(int b)
     
    int
     
    void
     

    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 Details

    • SharedOutputBuffer

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

    • 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.io.BufferInfo
      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.io.BufferInfo
      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.io.BufferInfo
      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