Interface HttpOutput.Interceptor

All Superinterfaces:
org.eclipse.jetty.io.Content.Sink
All Known Subinterfaces:
BufferedResponseHandler.BufferedInterceptor
All Known Implementing Classes:
HttpChannel
Enclosing class:
HttpOutput

public static interface HttpOutput.Interceptor extends org.eclipse.jetty.io.Content.Sink
The HttpOutput.Interceptor is a single intercept point for all output written to the HttpOutput: via writer; via output stream; asynchronously; or blocking.

The Interceptor can be used to implement translations (eg Gzip) or additional buffering that acts on all output. Interceptors are created in a chain, so that multiple concerns may intercept.

The HttpChannel is an HttpOutput.Interceptor and is always the last link in any Interceptor chain.

Responses are committed by the first call to write(ByteBuffer, boolean, Callback) and closed by a call to write(ByteBuffer, boolean, Callback) with the last boolean set true. If no content is available to commit or close, then a null buffer is passed.

  • Method Summary

    Modifier and Type
    Method
    Description
     
    default void
    Reset the buffers.
    default void
    write(boolean last, ByteBuffer content, org.eclipse.jetty.util.Callback callback)
     
    void
    write(ByteBuffer content, boolean last, org.eclipse.jetty.util.Callback callback)
    Write content.
  • Method Details

    • write

      void write(ByteBuffer content, boolean last, org.eclipse.jetty.util.Callback callback)
      Write content. The response is committed by the first call to write and is closed by a call with last == true. Empty content buffers may be passed to force a commit or close.
      Parameters:
      content - The content to be written or an empty buffer.
      last - True if this is the last call to write
      callback - The callback to use to indicate Callback.succeeded() or Callback.failed(Throwable).
    • write

      default void write(boolean last, ByteBuffer content, org.eclipse.jetty.util.Callback callback)
      Specified by:
      write in interface org.eclipse.jetty.io.Content.Sink
    • getNextInterceptor

      HttpOutput.Interceptor getNextInterceptor()
      Returns:
      The next Interceptor in the chain or null if this is the last Interceptor in the chain.
    • resetBuffer

      default void resetBuffer() throws IllegalStateException
      Reset the buffers.

      If the Interceptor contains buffers then reset them.

      Throws:
      IllegalStateException - Thrown if the response has been committed and buffers and/or headers cannot be reset.