Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.apache.http.nio.util
Class SharedOutputBuffer

    java.lang.Object
      org.apache.http.nio.util.ExpandableBuffer
          org.apache.http.nio.util.SharedOutputBuffer

All Implemented Interfaces:
  BufferInfo, ContentOutputBuffer

    @Contract(threading=SAFE_CONDITIONAL)
    public class SharedOutputBuffer

extends ExpandableBuffer
implements ContentOutputBuffer

Implementation of the `ContentOutputBuffer` 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 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.

Since:
  4.0

Field Summary

Fields inherited from class org.apache.http.nio.util.ExpandableBuffer
`buffer, INPUT_MODE, OUTPUT_MODE`

Constructor Summary
`SharedOutputBuffer(int bufferSize)`
`SharedOutputBuffer(int bufferSize, ByteBufferAllocator allocator)`
`SharedOutputBuffer(int bufferSize, IOControl ioControl, ByteBufferAllocator allocator)` Deprecated. (4.3) use `SharedOutputBuffer(int, ByteBufferAllocator)`

Method Summary
`int` | `available()` Returns available capacity of this buffer.
`int` | `capacity()` Returns the total capacity of this buffer.
`void` | `close()`
`void` | `flush()`
`boolean` | `hasData()` Determines if the buffer contains data.
`int` | `length()` Returns the length of this buffer.
`int` | `produceContent(ContentEncoder encoder)` Deprecated. (4.3) use `produceContent(ContentEncoder, IOControl)`
`int` | `produceContent(ContentEncoder encoder, IOControl ioControl)`
`void` | `reset()` Resets the buffer by clearing its state and stored content.
`void` | `shutdown()`
`void` | `write(byte[] b)`
`void` | `write(byte[] b, int off, int len)` Writes `len` bytes from the specified byte array starting at offset `off` to this buffer.
`void` | `write(int b)` Writes the specified byte to this buffer.
`void` | `writeCompleted()` Indicates the content has been fully written.

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

    @Deprecated
    public SharedOutputBuffer(int bufferSize,
                                         IOControl ioControl,
                                         ByteBufferAllocator allocator)

  Deprecated. (4.3) use `SharedOutputBuffer(int, ByteBufferAllocator)`

### SharedOutputBuffer

    public SharedOutputBuffer(int bufferSize,
                              ByteBufferAllocator allocator)

Since:
  4.3

### SharedOutputBuffer

    public SharedOutputBuffer(int bufferSize)

Since:
  4.3

Method Detail

### reset

    public void reset()

  Description copied from interface: `ContentOutputBuffer`
  Resets the buffer by clearing its state and stored content.

  Specified by:
    `reset` in interface `ContentOutputBuffer`

### hasData

    public boolean hasData()

  Description copied from class: `ExpandableBuffer`
  Determines if the buffer contains data.

  Overrides:
    `hasData` in class `ExpandableBuffer`
  Returns:
    `true` if there is data in the buffer, `false` otherwise.

### available

    public int available()

  Description copied from class: `ExpandableBuffer`
  Returns available capacity of this buffer.

  Specified by:
    `available` in interface `BufferInfo`
  Overrides:
    `available` in class `ExpandableBuffer`
  Returns:
    buffer length.

### capacity

    public int capacity()

  Description copied from class: `ExpandableBuffer`
  Returns the total capacity of this buffer.

  Specified by:
    `capacity` in interface `BufferInfo`
  Overrides:
    `capacity` in class `ExpandableBuffer`
  Returns:
    total capacity.

### length

    public int length()

  Description copied from class: `ExpandableBuffer`
  Returns the length of this buffer.

  Specified by:
    `length` in interface `BufferInfo`
  Overrides:
    `length` in class `ExpandableBuffer`
  Returns:
    buffer length.

### produceContent

    @Deprecated
    public int produceContent(ContentEncoder encoder)
                       throws IOException

  Deprecated. (4.3) use `produceContent(ContentEncoder, IOControl)`

  Description copied from interface: `ContentOutputBuffer`
  Writes content from this buffer to the given `ContentEncoder`.

  Specified by:
    `produceContent` in interface `ContentOutputBuffer`
  Parameters:
    `encoder` - content encoder.
  Returns:
    number of bytes written.
  Throws:
    `IOException` - in case of an I/O error.

### produceContent

    public int produceContent(ContentEncoder encoder,
                              IOControl ioControl)
                       throws IOException

  Throws:
    `IOException`
  Since:
    4.3

### close

    public void close()

### shutdown

    public void shutdown()

### write

    public void write(byte[] b,
                      int off,
                      int len)
               throws IOException

  Description copied from interface: `ContentOutputBuffer`
  Writes `len` bytes from the specified byte array starting at offset `off` to this 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.

  Specified by:
    `write` in interface `ContentOutputBuffer`
  Parameters:
    `b` - the data.
    `off` - the start offset in the data.
    `len` - the number of bytes to write.
  Throws:
    `IOException` - if an I/O error occurs.

### write

    public void write(byte[] b)
               throws IOException

  Throws:
    `IOException`

### write

    public void write(int b)
               throws IOException

  Description copied from interface: `ContentOutputBuffer`
  Writes the specified byte to this buffer.

  Specified by:
    `write` in interface `ContentOutputBuffer`
  Parameters:
    `b` - the `byte`.
  Throws:
    `IOException` - if an I/O error occurs.

### flush

    public void flush()
               throws IOException

  Specified by:
    `flush` in interface `ContentOutputBuffer`
  Throws:
    `IOException`

### writeCompleted

    public void writeCompleted()
                        throws IOException

  Description copied from interface: `ContentOutputBuffer`
  Indicates the content has been fully written.

  Specified by:
    `writeCompleted` in interface `ContentOutputBuffer`
  Throws:
    `IOException` - if an I/O error occurs.

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2005–2021 The Apache Software Foundation. All rights reserved.