StreamFlowWindow

abstract class StreamFlowWindow
Representation of the flow control state of a stream belonging to a session
The StreamFlowWindow provides the tools for tracking the flow window for
both the individual stream and the session that it belongs to.
class Object
trait Matchable
class Any

Value members

Methods

The flow control manager of the session this stream belongs to
def streamId: Int
Id of the associated stream
Get the number of stream inbound bytes that haven't been consumed
Get the remaining bytes in the stream outbound window
final def outboundWindow: Int
Get the remaining outbound window, considering both the session and stream windows
final def outboundWindowAvailable: Boolean
Determine whether we have available flow window remaining, considering
both the stream and the session flow windows
Adjust the stream flow window to account for a change in INITIAL_WINDOW_SIZE
If an error is returned, the internal state must not be modified.
Value Params
delta
change in intial window size. Maybe be positive or negative, but must not
cause the window to overflow Int.MaxValue.
def streamOutboundAcked(count: Int): Option[Http2Exception]
Signal that a stream window update was received for count bytes
def outboundRequest(request: Int): Int
Request to withdraw bytes from the outbound window of the stream
and the session.
Value Params
request
maximum bytes to withdraw
Returns
actual bytes withdrawn from the window
Get the remaining bytes in the streams inbound window
def inboundObserved(count: Int): Boolean
Attempts to withdraw count bytes from the inbound window of both the stream and the session.
If there are sufficient bytes in the stream and session flow windows, they are subtracted,
otherwise the window is unmodified.
Returns
true if withdraw was successful, false otherwise.
def inboundConsumed(count: Int): Unit
Signal that count bytes have been consumed by the stream
Note
The consumed bytes are also counted for the session flow window.
def streamInboundAcked(count: Int): Unit
Signal that a stream window update was sent for count bytes