org.apache.http.nio.util

## Class SimpleOutputBuffer

- java.lang.Object
- - org.apache.http.nio.util.ExpandableBuffer
  - - org.apache.http.nio.util.SimpleOutputBuffer

All Implemented Interfaces:
  BufferInfo, ContentOutputBuffer

    @NotThreadSafe
    public class SimpleOutputBuffer
    extends ExpandableBuffer
    implements ContentOutputBuffer

Basic implementation of the `ContentOutputBuffer` interface.

This class is not thread safe.

Since:
  4.0

### Field Summary

### Fields inherited from class org.apache.http.nio.util.ExpandableBuffer

`buffer, INPUT_MODE, OUTPUT_MODE`

### Constructor Summary

Constructors
Constructor and Description
`SimpleOutputBuffer(int buffersize)`
`SimpleOutputBuffer(int buffersize, ByteBufferAllocator allocator)`

### Method Summary

Methods
`void` `flush()`
`int` `produceContent(ContentEncoder encoder)` Writes content from this buffer to the given `ContentEncoder`.
`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

`available, capacity, clear, ensureCapacity, expand, getMode, hasData, length, setInputMode, setOutputMode, toString`

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

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

### Constructor Detail

#### SimpleOutputBuffer

    public SimpleOutputBuffer(int buffersize,
                      ByteBufferAllocator allocator)

#### SimpleOutputBuffer

    public SimpleOutputBuffer(int buffersize)

Since:
  4.3

### Method Detail

#### produceContent

    public int produceContent(ContentEncoder encoder)
                       throws IOException

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.

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

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

#### flush

    public void flush()

Specified by:
  `flush` in interface `ContentOutputBuffer`

#### writeCompleted

    public void writeCompleted()

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

Specified by:
  `writeCompleted` in interface `ContentOutputBuffer`

#### shutdown

    public void shutdown()