Interface Stream.Listener

All Known Implementing Classes:
Stream.Listener.Adapter
Enclosing interface:
Stream

public static interface Stream.Listener

A Stream.Listener is the passive counterpart of a Stream and receives events happening on an HTTP/2 stream.

HTTP/2 data is flow controlled - this means that only a finite number of data events are delivered, until the flow control window is exhausted.

Applications control the delivery of data events by requesting them via Stream.demand(long); the first event is always delivered, while subsequent events must be explicitly demanded.

Applications control the HTTP/2 flow control by completing the callback associated with data events - this allows the implementation to recycle the data buffer and eventually to enlarge the flow control window so that the sender can send more data.

See Also:
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Interface
    Description
    static class 
    Empty implementation of Stream.Listener
  • Method Summary

    Modifier and Type
    Method
    Description
    default void
    Callback method invoked before notifying the first DATA frame.
    default void
    onClosed(Stream stream)
    Callback method invoked after the stream has been closed.
    default void
    onData(Stream stream, DataFrame frame, org.eclipse.jetty.util.Callback callback)
    Callback method invoked when a DATA frame has been received.
    default void
    onDataDemanded(Stream stream, DataFrame frame, org.eclipse.jetty.util.Callback callback)
    Callback method invoked when a DATA frame has been demanded.
    default void
    onFailure(Stream stream, int error, String reason, Throwable failure, org.eclipse.jetty.util.Callback callback)
    Callback method invoked when the stream failed.
    void
    onHeaders(Stream stream, HeadersFrame frame)
    Callback method invoked when a HEADERS frame representing the HTTP response has been received.
    boolean
    Callback method invoked when the stream exceeds its idle timeout.
    default void
    Callback method invoked when a stream is created locally by Session.newStream(HeadersFrame, Promise, Listener).
    onPush(Stream stream, PushPromiseFrame frame)
    Callback method invoked when a PUSH_PROMISE frame has been received.
    default void
    onReset(Stream stream, ResetFrame frame)
    Callback method invoked when a RST_STREAM frame has been received for this stream.
    default void
    onReset(Stream stream, ResetFrame frame, org.eclipse.jetty.util.Callback callback)
    Callback method invoked when a RST_STREAM frame has been received for this stream.
  • Method Details

    • onNewStream

      default void onNewStream(Stream stream)

      Callback method invoked when a stream is created locally by Session.newStream(HeadersFrame, Promise, Listener).

      Parameters:
      stream - the newly created stream
    • onHeaders

      void onHeaders(Stream stream, HeadersFrame frame)

      Callback method invoked when a HEADERS frame representing the HTTP response has been received.

      Parameters:
      stream - the stream
      frame - the HEADERS frame received
    • onPush

      Stream.Listener onPush(Stream stream, PushPromiseFrame frame)

      Callback method invoked when a PUSH_PROMISE frame has been received.

      Parameters:
      stream - the pushed stream
      frame - the PUSH_PROMISE frame received
      Returns:
      a Stream.Listener that will be notified of pushed stream events
    • onBeforeData

      default void onBeforeData(Stream stream)

      Callback method invoked before notifying the first DATA frame.

      The default implementation initializes the demand for DATA frames.

      Parameters:
      stream - the stream
    • onData

      default void onData(Stream stream, DataFrame frame, org.eclipse.jetty.util.Callback callback)

      Callback method invoked when a DATA frame has been received.

      Parameters:
      stream - the stream
      frame - the DATA frame received
      callback - the callback to complete when the bytes of the DATA frame have been consumed
      See Also:
    • onDataDemanded

      default void onDataDemanded(Stream stream, DataFrame frame, org.eclipse.jetty.util.Callback callback)

      Callback method invoked when a DATA frame has been demanded.

      Implementations of this method must arrange to call (within the method or otherwise asynchronously) Stream.demand(long).

      Parameters:
      stream - the stream
      frame - the DATA frame received
      callback - the callback to complete when the bytes of the DATA frame have been consumed
    • onReset

      default void onReset(Stream stream, ResetFrame frame, org.eclipse.jetty.util.Callback callback)

      Callback method invoked when a RST_STREAM frame has been received for this stream.

      Parameters:
      stream - the stream
      frame - the RST_FRAME received
      callback - the callback to complete when the reset has been handled
    • onReset

      default void onReset(Stream stream, ResetFrame frame)

      Callback method invoked when a RST_STREAM frame has been received for this stream.

      Parameters:
      stream - the stream
      frame - the RST_FRAME received
      See Also:
    • onIdleTimeout

      boolean onIdleTimeout(Stream stream, Throwable x)

      Callback method invoked when the stream exceeds its idle timeout.

      Parameters:
      stream - the stream
      x - the timeout failure
      Returns:
      true to reset the stream, false to ignore the idle timeout
      See Also:
    • onFailure

      default void onFailure(Stream stream, int error, String reason, Throwable failure, org.eclipse.jetty.util.Callback callback)

      Callback method invoked when the stream failed.

      Parameters:
      stream - the stream
      error - the error code
      reason - the error reason, or null
      failure - the failure
      callback - the callback to complete when the failure has been handled
    • onClosed

      default void onClosed(Stream stream)

      Callback method invoked after the stream has been closed.

      Parameters:
      stream - the stream