@UnstableApi public final class UniformStreamByteDistributor extends Object implements StreamByteDistributor
StreamByteDistributorthat ignores stream priority and uniformly allocates bytes to all streams. This class uses a minimum chunk size that will be allocated to each stream. While fewer streams may be written to in each call to
StreamByteDistributor.distribute(int, Writer), doing this should improve the goodput on each written stream.
|Constructor and Description|
|Modifier and Type||Method and Description|
Distributes up to
Sets the minimum allocation chunk that will be allocated to each stream.
Explicitly update the dependency tree.
Called when the streamable bytes for a stream has changed.
public UniformStreamByteDistributor(Http2Connection connection)
public void minAllocationChunk(int minAllocationChunk)
minAllocationChunk- the minimum number of bytes that will be allocated to each stream. Must be > 0.
public void updateStreamableBytes(StreamByteDistributor.StreamState streamState)
public void updateDependencyTree(int childStreamId, int parentStreamId, short weight, boolean exclusive)
childStreamId- The stream identifier associated with the child stream.
parentStreamId- The stream identifier associated with the parent stream. May be
0, to make
childStreamIdand immediate child of the connection.
weight- The weight which is used relative to other child streams for
parentStreamId. This value must be between 1 and 256 (inclusive).
childStreamIdshould be the exclusive dependency of
public boolean distribute(int maxBytes, StreamByteDistributor.Writer writer) throws Http2Exception
maxBytesto those streams containing streamable bytes and iterates across those streams to write the appropriate bytes. Criteria for traversing streams is undefined and it is up to the implementation to determine when to stop at a given stream.
The streamable bytes are not automatically updated by calling this method. It is up to the
caller to indicate the number of bytes streamable after the write by calling
maxBytes- the maximum number of bytes to write.
trueif there are still streamable bytes that have not yet been written, otherwise
Http2Exception- If an internal exception occurs and internal connection state would otherwise be corrupted.
Copyright © 2008–2023 The Netty Project. All rights reserved.