org.apache.hc.core5.http.nio.support.classic

## Class SharedOutputBuffer

- java.lang.Object
- - org.apache.hc.core5.http.impl.nio.ExpandableBuffer
  - - org.apache.hc.core5.http.nio.support.classic.SharedOutputBuffer

- All Implemented Interfaces:
    ContentOutputBuffer

      @Contract(threading=SAFE)
      public final class SharedOutputBuffer
      extends ExpandableBuffer
      implements ContentOutputBuffer

  Since:
    5.0

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class org.apache.hc.core5.http.impl.nio.ExpandableBuffer

      `ExpandableBuffer.Mode`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `SharedOutputBuffer(int bufferSize)`
    `SharedOutputBuffer(ReentrantLock lock, int initialBufferSize)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `abort()`
    `int` | `capacity()` Returns available capacity of this buffer.
    `void` | `flush(DataStreamChannel channel)`
    `boolean` | `hasData()` Determines if the buffer contains data.
    `boolean` | `isEndStream()`
    `int` | `length()` Returns the length of this buffer.
    `void` | `reset()`
    `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.hc.core5.http.impl.nio.ExpandableBuffer

      `buffer, clear, ensureAdjustedCapacity, ensureCapacity, expand, mode, setInputMode, setOutputMode, toString`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

    - ### Methods inherited from interface org.apache.hc.core5.http.nio.support.classic.ContentOutputBuffer

      `length, reset`

- - ### Constructor Detail

    - #### SharedOutputBuffer

          public SharedOutputBuffer(ReentrantLock lock,
                                    int initialBufferSize)

    - #### SharedOutputBuffer

          public SharedOutputBuffer(int bufferSize)

  - ### Method Detail

    - #### flush

          public void flush(DataStreamChannel channel)
                     throws IOException

      Throws:
        `IOException`

    - #### 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(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.

    - #### 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.

    - #### hasData

          public boolean hasData()

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

      Sets the mode to output.

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

    - #### capacity

          public int capacity()

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

    - #### length

          public int length()

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

      Sets the mode to output.

      Overrides:
        `length` in class `ExpandableBuffer`
      Returns:
        buffer length.

    - #### abort

          public void abort()

    - #### reset

          public void reset()

    - #### isEndStream

          public boolean isEndStream()

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