Interface Stream.Listener

  • All Known Implementing Classes:
    HTTP2ServerConnectionFactory.HTTPServerSessionListener, 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:
    Stream
    • Method Detail

      • 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,
                            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(Stream, DataFrame, Callback)
      • onDataDemanded

        default void onDataDemanded​(Stream stream,
                                    DataFrame frame,
                                    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,
                             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
      • onIdleTimeout

        boolean onIdleTimeout​(Stream stream,
                              java.lang.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:
        Stream.getIdleTimeout()
      • onFailure

        default void onFailure​(Stream stream,
                               int error,
                               java.lang.String reason,
                               java.lang.Throwable failure,
                               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