# Class Http11OutputBuffer.SocketOutputBuffer

java.lang.Object
org.apache.coyote.http11.Http11OutputBuffer.SocketOutputBuffer

All Implemented Interfaces:
  `HttpOutputBuffer`, `OutputBuffer`

Enclosing class:
  `Http11OutputBuffer`

protected class Http11OutputBuffer.SocketOutputBuffer extends Object implements HttpOutputBuffer
This class is an output buffer which will write data to a socket.

- ## Constructor Summary

  Constructors
  Modifier
  Constructor
  Description
  `protected`
  `SocketOutputBuffer()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `int`
  `doWrite(ByteBuffer chunk)`
  Write the given data to the response.
  `void`
  `end()`
  Finish writing the current response.
  `void`
  `flush()`
  Flushes any unwritten data to the client.
  `long`
  `getBytesWritten()`
  Bytes written to the underlying socket.

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

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

- ## Constructor Details

  - ### SocketOutputBuffer

    protected SocketOutputBuffer()

- ## Method Details

  - ### doWrite

    public int doWrite(ByteBuffer chunk) throws IOException
    Description copied from interface: `OutputBuffer`
    Write the given data to the response. The caller owns the chunks.
    Specified by:
      `doWrite` in interface `OutputBuffer`
    Parameters:
      `chunk` - data to write
    Returns:
      The number of bytes written which may be less than available in the input chunk
    Throws:
      `IOException` - an underlying I/O error occurred

  - ### getBytesWritten

    public long getBytesWritten()
    Description copied from interface: `OutputBuffer`
    Bytes written to the underlying socket. This includes the effects of chunking, compression, etc.
    Specified by:
      `getBytesWritten` in interface `OutputBuffer`
    Returns:
      Bytes written for the current request

  - ### end

    public void end() throws IOException
    Description copied from interface: `HttpOutputBuffer`
    Finish writing the current response. It is acceptable to write extra bytes using `OutputBuffer.doWrite(java.nio.ByteBuffer)` during the execution of this method.
    Specified by:
      `end` in interface `HttpOutputBuffer`
    Throws:
      `IOException` - If an I/O error occurs while writing to the client

  - ### flush

    public void flush() throws IOException
    Description copied from interface: `HttpOutputBuffer`
    Flushes any unwritten data to the client.
    Specified by:
      `flush` in interface `HttpOutputBuffer`
    Throws:
      `IOException` - If an I/O error occurs while flushing