Interface Stream
-
- All Known Subinterfaces:
IStream
- All Known Implementing Classes:
HTTP2Stream
public interface Stream
A
Stream
represents a bidirectional exchange of data on top of aSession
.Differently from socket streams, where the input and output streams are permanently associated with the socket (and hence with the connection that the socket represents), there can be multiple HTTP/2 streams present concurrent for an HTTP/2 session.
A
Stream
maps to an HTTP request/response cycle, and after the request/response cycle is completed, the stream is closed and removed from the session.Like
Session
,Stream
is the active part and by calling its API applications can generate events on the stream; conversely,Stream.Listener
is the passive part, and its callbacks are invoked when events happen on the stream.- See Also:
Stream.Listener
-
-
Nested Class Summary
Nested Classes Modifier and Type Interface Description static interface
Stream.Listener
AStream.Listener
is the passive counterpart of aStream
and receives events happening on an HTTP/2 stream.
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description void
data(DataFrame frame, Callback callback)
Sends the given DATAframe
.java.lang.Object
getAttribute(java.lang.String key)
int
getId()
long
getIdleTimeout()
Session
getSession()
void
headers(HeadersFrame frame, Callback callback)
Sends the given HEADERSframe
.boolean
isClosed()
boolean
isReset()
void
push(PushPromiseFrame frame, Promise<Stream> promise, Stream.Listener listener)
Sends the given PUSH_PROMISEframe
.java.lang.Object
removeAttribute(java.lang.String key)
void
reset(ResetFrame frame, Callback callback)
Sends the given RST_STREAMframe
.void
setAttribute(java.lang.String key, java.lang.Object value)
void
setIdleTimeout(long idleTimeout)
-
-
-
Method Detail
-
getId
int getId()
- Returns:
- the stream unique id
-
getSession
Session getSession()
- Returns:
- the session this stream is associated to
-
headers
void headers(HeadersFrame frame, Callback callback)
Sends the given HEADERS
frame
.Typically used to send an HTTP response or to send the HTTP response trailers.
- Parameters:
frame
- the HEADERS frame to sendcallback
- the callback that gets notified when the frame has been sent
-
push
void push(PushPromiseFrame frame, Promise<Stream> promise, Stream.Listener listener)
Sends the given PUSH_PROMISE
frame
.- Parameters:
frame
- the PUSH_PROMISE frame to sendpromise
- the promise that gets notified of the pushed stream creationlistener
- the listener that gets notified of stream events
-
data
void data(DataFrame frame, Callback callback)
Sends the given DATA
frame
.- Parameters:
frame
- the DATA frame to sendcallback
- the callback that gets notified when the frame has been sent
-
reset
void reset(ResetFrame frame, Callback callback)
Sends the given RST_STREAM
frame
.- Parameters:
frame
- the RST_FRAME to sendcallback
- the callback that gets notified when the frame has been sent
-
getAttribute
java.lang.Object getAttribute(java.lang.String key)
- Parameters:
key
- the attribute key- Returns:
- an arbitrary object associated with the given key to this stream or null if no object can be found for the given key.
- See Also:
setAttribute(String, Object)
-
setAttribute
void setAttribute(java.lang.String key, java.lang.Object value)
- Parameters:
key
- the attribute keyvalue
- an arbitrary object to associate with the given key to this stream- See Also:
getAttribute(String)
,removeAttribute(String)
-
removeAttribute
java.lang.Object removeAttribute(java.lang.String key)
- Parameters:
key
- the attribute key- Returns:
- the arbitrary object associated with the given key to this stream
- See Also:
setAttribute(String, Object)
-
isReset
boolean isReset()
- Returns:
- whether this stream has been reset
-
isClosed
boolean isClosed()
- Returns:
- whether this stream is closed, both locally and remotely.
-
getIdleTimeout
long getIdleTimeout()
- Returns:
- the stream idle timeout
- See Also:
setIdleTimeout(long)
-
setIdleTimeout
void setIdleTimeout(long idleTimeout)
- Parameters:
idleTimeout
- the stream idle timeout- See Also:
getIdleTimeout()
,Stream.Listener.onIdleTimeout(Stream, Throwable)
-
-