Interface Stream
- All Known Subinterfaces:
 IStream
- All Known Implementing Classes:
 HTTP2Stream
A Stream represents a bidirectional exchange of data on top of a Session.
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 concurrently 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:
 
- 
Nested Class Summary
Nested ClassesModifier and TypeInterfaceDescriptionstatic interfaceAStream.Listeneris the passive counterpart of aStreamand receives events happening on an HTTP/2 stream. - 
Method Summary
Modifier and TypeMethodDescriptiondefault CompletableFuture<Stream>Sends the given DATAframe.voidSends the given DATAframe.voiddemand(long n) DemandsnmoreDATAframes for this stream.getAttribute(String key) intgetId()longdefault CompletableFuture<Stream>headers(HeadersFrame frame) Sends the given HEADERSframerepresenting an HTTP response.voidheaders(HeadersFrame frame, Callback callback) Sends the given HEADERSframe.booleanisClosed()booleanisReset()default CompletableFuture<Stream>push(PushPromiseFrame frame, Stream.Listener listener) Sends the given PUSH_PROMISEframe.voidpush(PushPromiseFrame frame, Promise<Stream> promise, Stream.Listener listener) Sends the given PUSH_PROMISEframe.removeAttribute(String key) voidreset(ResetFrame frame, Callback callback) Sends the given RST_STREAMframe.voidsetAttribute(String key, Object value) voidsetIdleTimeout(long idleTimeout)  
- 
Method Details
- 
getId
int getId()- Returns:
 - the stream unique id
 
 - 
getSession
Session getSession()- Returns:
 - the session this stream is associated to
 
 - 
headers
Sends the given HEADERS
framerepresenting an HTTP response.- Parameters:
 frame- the HEADERS frame to send- Returns:
 - the CompletableFuture that gets notified when the frame has been sent
 
 - 
headers
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
Sends the given PUSH_PROMISE
frame.- Parameters:
 frame- the PUSH_PROMISE frame to sendlistener- the listener that gets notified of stream events- Returns:
 - the CompletableFuture that gets notified of the pushed stream creation
 
 - 
push
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
Sends the given DATA
frame.- Parameters:
 frame- the DATA frame to send- Returns:
 - the CompletableFuture that gets notified when the frame has been sent
 
 - 
data
Sends the given DATA
frame.- Parameters:
 frame- the DATA frame to sendcallback- the callback that gets notified when the frame has been sent
 - 
reset
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
- 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
- Parameters:
 key- the attribute keyvalue- an arbitrary object to associate with the given key to this stream- See Also:
 
 - 
removeAttribute
- Parameters:
 key- the attribute key- Returns:
 - the arbitrary object associated with the given key to this stream
 - See Also:
 
 - 
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
void setIdleTimeout(long idleTimeout) - Parameters:
 idleTimeout- the stream idle timeout- See Also:
 
 - 
demand
void demand(long n) Demands
nmoreDATAframes for this stream.- Parameters:
 n- the increment of the demand, must be greater than zero- See Also:
 
 
 -