org.apache.hc.core5.http.io

## Interface SessionOutputBuffer

- All Known Implementing Classes:
    SessionOutputBufferImpl

      public interface SessionOutputBuffer

  Session output buffer for blocking HTTP/1.1 connections.

  This interface facilitates intermediate buffering of output data streamed out to an output stream and provides provides methods for writing lines of text.

  Since:
    4.0

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `int` | `available()` Returns available space in the buffer.
    `int` | `capacity()` Returns total capacity of the buffer
    `void` | `flush(OutputStream outputStream)` Flushes this session buffer and forces any buffered output bytes to be written out.
    `HttpTransportMetrics` | `getMetrics()` Returns `HttpTransportMetrics` for this session buffer.
    `int` | `length()` Return length data stored in the buffer
    `void` | `write(byte[] b, int off, int len, OutputStream outputStream)` Writes `len` bytes from the specified byte array starting at offset `off` to this session buffer.
    `void` | `write(byte[] b, OutputStream outputStream)` Writes `b.length` bytes from the specified byte array to this session buffer.
    `void` | `write(int b, OutputStream outputStream)` Writes the specified byte to this session buffer.
    `void` | `writeLine(CharArrayBuffer buffer, OutputStream outputStream)` Writes characters from the specified char array followed by a line delimiter to this session buffer.

- - ### Method Detail

    - #### length

          int length()

      Return length data stored in the buffer
      Returns:
        data length

    - #### capacity

          int capacity()

      Returns total capacity of the buffer
      Returns:
        total capacity

    - #### available

          int available()

      Returns available space in the buffer.
      Returns:
        available space.

    - #### write

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

      Writes `len` bytes from the specified byte array starting at offset `off` to this session buffer.

      If `off` is negative, or `len` is negative, or `off+len` is greater than the length of the array `b`, then an `IndexOutOfBoundsException` is thrown.

      Parameters:
        `b` - the data.
        `off` - the start offset in the data.
        `len` - the number of bytes to write.
        `outputStream` - the target OutputStream.
      Throws:
        `IOException` - if an I/O error occurs.

    - #### write

          void write(byte[] b,
                     OutputStream outputStream)
              throws IOException

      Writes `b.length` bytes from the specified byte array to this session buffer.
      Parameters:
        `b` - the data.
        `outputStream` - the target OutputStream.
      Throws:
        `IOException` - if an I/O error occurs.

    - #### write

          void write(int b,
                     OutputStream outputStream)
              throws IOException

      Writes the specified byte to this session buffer.
      Parameters:
        `b` - the `byte`.
        `outputStream` - the target OutputStream.
      Throws:
        `IOException` - if an I/O error occurs.

    - #### writeLine

          void writeLine(CharArrayBuffer buffer,
                         OutputStream outputStream)
                  throws IOException

      Writes characters from the specified char array followed by a line delimiter to this session buffer.

      The choice of a char encoding and line delimiter sequence is up to the specific implementations of this interface.

      Parameters:
        `buffer` - the buffer containing chars of the line.
        `outputStream` - the target OutputStream.
      Throws:
        `IOException` - if an I/O error occurs.

    - #### flush

          void flush(OutputStream outputStream)
              throws IOException

      Flushes this session buffer and forces any buffered output bytes to be written out. The general contract of `flush` is that calling it is an indication that, if any bytes previously written have been buffered by the implementation of the output stream, such bytes should immediately be written to their intended destination.
      Parameters:
        `outputStream` - the target OutputStream.
      Throws:
        `IOException` - if an I/O error occurs.

    - #### getMetrics

          HttpTransportMetrics getMetrics()

      Returns `HttpTransportMetrics` for this session buffer.
      Returns:
        transport metrics.

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