Class ChunkedOutput<T>

java.lang.Object
jakarta.ws.rs.core.GenericType<T>
org.glassfish.jersey.server.ChunkedOutput<T>
Type Parameters:
T - chunk type.
All Implemented Interfaces:
Closeable, AutoCloseable
Direct Known Subclasses:
EventOutput

public class ChunkedOutput<T> extends GenericType<T> implements Closeable
Used for sending messages in "typed" chunks. Useful for long running processes, which needs to produce partial responses.
Author:
Pavel Bucek, Martin Matula, Marek Potociar
  • Constructor Details

    • ChunkedOutput

      protected ChunkedOutput()
      Create new ChunkedOutput.
    • ChunkedOutput

      protected ChunkedOutput(ChunkedOutput.Builder<T> builder)
      Create new ChunkedOutput based on builder.
      Parameters:
      builder - the builder to use
    • ChunkedOutput

      public ChunkedOutput(Type chunkType)
      Create ChunkedOutput with specified type.
      Parameters:
      chunkType - chunk type. Must not be {code null}.
    • ChunkedOutput

      protected ChunkedOutput(byte[] chunkDelimiter)
      Create new ChunkedOutput with a custom chunk delimiter.
      Parameters:
      chunkDelimiter - custom chunk delimiter bytes. Must not be {code null}.
      Since:
      2.4.1
    • ChunkedOutput

      protected ChunkedOutput(byte[] chunkDelimiter, jakarta.inject.Provider<AsyncContext> asyncContextProvider)
      Create new ChunkedOutput with a custom chunk delimiter.
      Parameters:
      chunkDelimiter - custom chunk delimiter bytes. Must not be {code null}.
      Since:
      2.4.1
    • ChunkedOutput

      public ChunkedOutput(Type chunkType, byte[] chunkDelimiter)
      Create new ChunkedOutput with a custom chunk delimiter.
      Parameters:
      chunkType - chunk type. Must not be {code null}.
      chunkDelimiter - custom chunk delimiter bytes. Must not be {code null}.
      Since:
      2.4.1
    • ChunkedOutput

      protected ChunkedOutput(String chunkDelimiter)
      Create new ChunkedOutput with a custom chunk delimiter.
      Parameters:
      chunkDelimiter - custom chunk delimiter string. Must not be {code null}.
      Since:
      2.4.1
    • ChunkedOutput

      public ChunkedOutput(Type chunkType, String chunkDelimiter)
      Create new ChunkedOutput with a custom chunk delimiter.
      Parameters:
      chunkType - chunk type. Must not be {code null}.
      chunkDelimiter - custom chunk delimiter string. Must not be {code null}.
      Since:
      2.4.1
  • Method Details

    • builder

      public static <T> ChunkedOutput.Builder<T> builder()
      Returns a builder to create a ChunkedOutput with custom configuration.
      Returns:
      builder
    • builder

      public static <T> ChunkedOutput.TypedBuilder<T> builder(Type chunkType)
      Returns a builder to create a ChunkedOutput with custom configuration.
      Parameters:
      chunkType - chunk type. Must not be {code null}.
      Returns:
      builder
    • write

      public void write(T chunk) throws IOException
      Write a chunk.
      Parameters:
      chunk - a chunk instance to be written.
      Throws:
      IOException - if this response is closed or when encountered any problem during serializing or writing a chunk.
    • flushQueue

      protected void flushQueue() throws IOException
      Throws:
      IOException
    • close

      public void close() throws IOException
      Close this response - it will be finalized and underlying connections will be closed or made available for another response.
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface Closeable
      Throws:
      IOException
    • isClosed

      public boolean isClosed()
      Get state information. Please note that ChunkedOutput can be closed by the client side - client can close connection from its side.
      Returns:
      true when closed, false otherwise.
    • onClose

      protected void onClose(Exception e)
      Executed only in case of close being triggered by client.
      Parameters:
      e - Exception causing the close
    • equals

      public boolean equals(Object obj)
      Overrides:
      equals in class GenericType<T>
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class GenericType<T>
    • toString

      public String toString()
      Overrides:
      toString in class GenericType<T>