@UnstableApi public interface StreamByteDistributor
限定符和类型 | 接口和说明 |
---|---|
static interface |
StreamByteDistributor.StreamState
State information for the stream, indicating the number of bytes that are currently
streamable.
|
static interface |
StreamByteDistributor.Writer
Object that performs the writing of the bytes that have been allocated for a stream.
|
限定符和类型 | 方法和说明 |
---|---|
boolean |
distribute(int maxBytes,
StreamByteDistributor.Writer writer)
Distributes up to
maxBytes to those streams containing streamable bytes and
iterates across those streams to write the appropriate bytes. |
void |
updateDependencyTree(int childStreamId,
int parentStreamId,
short weight,
boolean exclusive)
Explicitly update the dependency tree.
|
void |
updateStreamableBytes(StreamByteDistributor.StreamState state)
Called when the streamable bytes for a stream has changed.
|
void updateStreamableBytes(StreamByteDistributor.StreamState state)
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 childStreamId
and 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).exclusive
- If childStreamId
should be the exclusive dependency of parentStreamId
.boolean distribute(int maxBytes, StreamByteDistributor.Writer writer) throws Http2Exception
maxBytes
to 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
updateStreamableBytes(StreamState)
.
maxBytes
- the maximum number of bytes to write.true
if there are still streamable bytes that have not yet been written,
otherwise false
.Http2Exception
- If an internal exception occurs and internal connection state would otherwise be
corrupted.