Interface Stream.Listener
- All Known Implementing Classes:
HTTP2ServerConnectionFactory.HTTPServerSessionListener,Stream.Listener.Adapter
- Enclosing interface:
- Stream
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 -
Method Summary
Modifier and TypeMethodDescriptiondefault voidonBeforeData(Stream stream) Callback method invoked before notifying the first DATA frame.default voidCallback method invoked after the stream has been closed.default voidCallback method invoked when a DATA frame has been received.default voidonDataDemanded(Stream stream, DataFrame frame, Callback callback) Callback method invoked when a DATA frame has been demanded.default voidCallback method invoked when the stream failed.voidonHeaders(Stream stream, HeadersFrame frame) Callback method invoked when a HEADERS frame representing the HTTP response has been received.booleanonIdleTimeout(Stream stream, Throwable x) Callback method invoked when the stream exceeds its idle timeout.default voidonNewStream(Stream stream) Callback method invoked when a stream is created locally bySession.newStream(HeadersFrame, Promise, Listener).onPush(Stream stream, PushPromiseFrame frame) Callback method invoked when a PUSH_PROMISE frame has been received.default voidonReset(Stream stream, ResetFrame frame) Callback method invoked when a RST_STREAM frame has been received for this stream.default voidonReset(Stream stream, ResetFrame frame, Callback callback) Callback method invoked when a RST_STREAM frame has been received for this stream.
-
Method Details
-
onNewStream
Callback method invoked when a stream is created locally by
Session.newStream(HeadersFrame, Promise, Listener).- Parameters:
stream- the newly created stream
-
onHeaders
Callback method invoked when a HEADERS frame representing the HTTP response has been received.
- Parameters:
stream- the streamframe- the HEADERS frame received
-
onPush
Callback method invoked when a PUSH_PROMISE frame has been received.
- Parameters:
stream- the pushed streamframe- the PUSH_PROMISE frame received- Returns:
- a Stream.Listener that will be notified of pushed stream events
-
onBeforeData
Callback method invoked before notifying the first DATA frame.
The default implementation initializes the demand for DATA frames.
- Parameters:
stream- the stream
-
onData
Callback method invoked when a DATA frame has been received.
- Parameters:
stream- the streamframe- the DATA frame receivedcallback- the callback to complete when the bytes of the DATA frame have been consumed- See Also:
-
onDataDemanded
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 streamframe- the DATA frame receivedcallback- the callback to complete when the bytes of the DATA frame have been consumed
-
onReset
Callback method invoked when a RST_STREAM frame has been received for this stream.
- Parameters:
stream- the streamframe- the RST_FRAME receivedcallback- the callback to complete when the reset has been handled
-
onReset
Callback method invoked when a RST_STREAM frame has been received for this stream.
- Parameters:
stream- the streamframe- the RST_FRAME received- See Also:
-
onIdleTimeout
Callback method invoked when the stream exceeds its idle timeout.
- Parameters:
stream- the streamx- 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, Callback callback) Callback method invoked when the stream failed.
- Parameters:
stream- the streamerror- the error codereason- the error reason, or nullfailure- the failurecallback- the callback to complete when the failure has been handled
-
onClosed
Callback method invoked after the stream has been closed.
- Parameters:
stream- the stream
-