Http2RemoteFlowController.
This class is NOT thread safe. The assumption is all methods must be invoked from a single thread.
Typically this thread is the event loop thread for the ChannelHandlerContext managed by this class.
| Modifier and Type | Class and Description |
|---|---|
| private class | DefaultHttp2RemoteFlowController.FlowState
The remote flow control state for a single stream. |
| private class | DefaultHttp2RemoteFlowController.ListenerWritabilityMonitor
Writability of a Connection Window - Total Queued Bytes > 0 && Stream Window - Bytes Queued for Stream > 0 && isChannelWritable() |
| private class | DefaultHttp2RemoteFlowController.WritabilityMonitor
Abstract class which provides common functionality for writability monitor implementations. |
| Modifier and Type | Field and Description |
|---|---|
| private final Http2Connection | |
| private final DefaultHttp2RemoteFlowController. | |
| private ChannelHandlerContext | |
| private int | |
| private static final InternalLogger | |
| private static final int | |
| private DefaultHttp2RemoteFlowController. | |
| private final Http2Connection. | |
| private final StreamByteDistributor |
| Access | Constructor and Description |
|---|---|
| public | |
| public | DefaultHttp2RemoteFlowController(Http2Connection connection, StreamByteDistributor streamByteDistributor)
|
| public | DefaultHttp2RemoteFlowController(Http2Connection connection, final Http2RemoteFlowController.
|
| public | DefaultHttp2RemoteFlowController(Http2Connection connection, StreamByteDistributor streamByteDistributor, final Http2RemoteFlowController.
|
| Modifier and Type | Method and Description |
|---|---|
| public void | addFlowControlled(Http2Stream
the subject stream. Must not be the connection stream object. stream, Http2RemoteFlowController.payload to write subject to flow-control accounting and ordering rules. frameImplements io. |
| public void | channelHandlerContext(ChannelHandlerContext
The ctx)ChannelHandlerContext for which to apply flow control on.Implements io. ChannelHandlerContext for which to apply flow control on.
|
| public ChannelHandlerContext | channelHandlerContext()
Implements io. ChannelHandlerContext for which to apply flow control on.
|
| public void | channelWritabilityChanged()
Implements io. channelHandlerContext() has changed.
|
| private int | |
| public boolean | hasFlowControlled(Http2Stream
the stream to check if it has flow controlled frames. stream)Implements io. stream has any FlowControlled frames currently queued.
|
| public void | incrementWindowSize(Http2Stream
The subject stream. Use stream, int Http2Connection#connectionStream() for
requesting the size of the connection window.the change in size of the flow control window. delta)Implements io. |
| public void | initialWindowSize(int
the new initial window size. newWindowSize)Implements io. |
| public int | initialWindowSize()
Implements io. |
| private boolean | |
| private boolean | |
| public boolean | isWritable(Http2Stream
The stream to test. stream)Implements io. stream has bytes remaining for use in the flow control window.
|
| public void | listener(Http2RemoteFlowController.
to notify when the a write occurs, can be listenernull.Implements io. |
| private int | |
| private int | |
| private DefaultHttp2RemoteFlowController. | |
| public void | updateDependencyTree(int
The stream identifier associated with the child stream. childStreamId, int The stream identifier associated with the parent stream. May be parentStreamId, short 0,
to make childStreamId and immediate child of the connection.The weight which is used relative to other child streams for weight, boolean parentStreamId. This value
must be between 1 and 256 (inclusive).If exclusive)childStreamId should be the exclusive dependency of parentStreamId.Implements io. |
| public int | windowSize(Http2Stream stream)
Implements io. |
| private int | writableBytes()
The amount of bytes that can be supported by underlying |
| public void | writePendingBytes()
Implements io. |