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

Abstract methods

def inboundConsumed(count: Int): Unit

Signal that count bytes have been consumed by the stream

Signal that count bytes have been consumed by the stream

Note

The consumed bytes are also counted for the session flow window.

def inboundObserved(count: Int): Boolean

Attempts to withdraw count bytes from the inbound window of both the stream and the session.

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 outboundRequest(request: Int): Int

Request to withdraw bytes from the outbound window of the stream and the session.

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

Adjust the stream flow window to account for a change in INITIAL_WINDOW_SIZE

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.

The flow control manager of the session this stream belongs to

The flow control manager of the session this stream belongs to

def streamId: Int

Id of the associated stream

Id of the associated stream

def streamInboundAcked(count: Int): Unit

Signal that a stream window update was sent for count bytes

Signal that a stream window update was sent for count bytes

Get the remaining bytes in the streams inbound window

Get the remaining bytes in the streams inbound window

def streamOutboundAcked(count: Int): Option[Http2Exception]

Signal that a stream window update was received for count bytes

Signal that a stream window update was received for count bytes

Get the remaining bytes in the stream outbound window

Get the remaining bytes in the stream outbound window

Get the number of stream inbound bytes that haven't been consumed

Get the number of stream inbound bytes that haven't been consumed

Concrete methods

final def outboundWindow: Int

Get the remaining outbound window, considering both the session and stream windows

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

Determine whether we have available flow window remaining, considering both the stream and the session flow windows