Class SessionOutputBufferImpl

java.lang.Object
org.apache.hc.core5.http.impl.io.SessionOutputBufferImpl
All Implemented Interfaces:
SessionOutputBuffer

public class SessionOutputBufferImpl extends Object implements SessionOutputBuffer
Abstract base class for session output buffers that stream data to an arbitrary OutputStream. This class buffers small chunks of output data in an internal byte array for optimal output performance.

writeLine(CharArrayBuffer, OutputStream) method of this class uses CR-LF as a line delimiter.

Since:
4.3
  • Constructor Details

    • SessionOutputBufferImpl

      public SessionOutputBufferImpl(BasicHttpTransportMetrics metrics, int bufferSize, int fragmentSizeHint, CharsetEncoder charEncoder)
      Creates new instance of SessionOutputBufferImpl.
      Parameters:
      metrics - HTTP transport metrics.
      bufferSize - buffer size. Must be a positive number.
      fragmentSizeHint - fragment size hint defining a minimal size of a fragment that should be written out directly to the socket bypassing the session buffer. Value 0 disables fragment buffering.
      charEncoder - charEncoder to be used for encoding HTTP protocol elements. If null simple type cast will be used for char to byte conversion.
    • SessionOutputBufferImpl

      public SessionOutputBufferImpl(int bufferSize)
    • SessionOutputBufferImpl

      public SessionOutputBufferImpl(int bufferSize, CharsetEncoder encoder)
  • Method Details

    • capacity

      public int capacity()
      Description copied from interface: SessionOutputBuffer
      Returns total capacity of the buffer
      Specified by:
      capacity in interface SessionOutputBuffer
      Returns:
      total capacity
    • length

      public int length()
      Description copied from interface: SessionOutputBuffer
      Return length data stored in the buffer
      Specified by:
      length in interface SessionOutputBuffer
      Returns:
      data length
    • available

      public int available()
      Description copied from interface: SessionOutputBuffer
      Returns available space in the buffer.
      Specified by:
      available in interface SessionOutputBuffer
      Returns:
      available space.
    • flush

      public void flush(OutputStream outputStream) throws IOException
      Description copied from interface: SessionOutputBuffer
      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.
      Specified by:
      flush in interface SessionOutputBuffer
      Throws:
      IOException - if an I/O error occurs.
    • write

      public void write(byte[] b, int off, int len, OutputStream outputStream) throws IOException
      Description copied from interface: SessionOutputBuffer
      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.

      Specified by:
      write in interface SessionOutputBuffer
      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, OutputStream outputStream) throws IOException
      Description copied from interface: SessionOutputBuffer
      Writes b.length bytes from the specified byte array to this session buffer.
      Specified by:
      write in interface SessionOutputBuffer
      Parameters:
      b - the data.
      Throws:
      IOException - if an I/O error occurs.
    • write

      public void write(int b, OutputStream outputStream) throws IOException
      Description copied from interface: SessionOutputBuffer
      Writes the specified byte to this session buffer.
      Specified by:
      write in interface SessionOutputBuffer
      Parameters:
      b - the byte.
      Throws:
      IOException - if an I/O error occurs.
    • writeLine

      public void writeLine(CharArrayBuffer charbuffer, OutputStream outputStream) throws IOException
      Writes characters from the specified char array followed by a line delimiter to this session buffer.

      This method uses CR-LF as a line delimiter.

      Specified by:
      writeLine in interface SessionOutputBuffer
      Parameters:
      charbuffer - the buffer containing chars of the line.
      Throws:
      IOException - if an I/O error occurs.
    • getMetrics

      public HttpTransportMetrics getMetrics()
      Description copied from interface: SessionOutputBuffer
      Returns HttpTransportMetrics for this session buffer.
      Specified by:
      getMetrics in interface SessionOutputBuffer
      Returns:
      transport metrics.