Class UniformStreamByteDistributor

    • Constructor Detail

      • UniformStreamByteDistributor

        public UniformStreamByteDistributor​(Http2Connection connection)
    • Method Detail

      • minAllocationChunk

        public void minAllocationChunk​(int minAllocationChunk)
        Sets the minimum allocation chunk that will be allocated to each stream. Defaults to 1KiB.
        Parameters:
        minAllocationChunk - the minimum number of bytes that will be allocated to each stream. Must be > 0.
      • updateDependencyTree

        public void updateDependencyTree​(int childStreamId,
                                         int parentStreamId,
                                         short weight,
                                         boolean exclusive)
        Description copied from interface: StreamByteDistributor
        Explicitly update the dependency tree. This method is called independently of stream state changes.
        Specified by:
        updateDependencyTree in interface StreamByteDistributor
        Parameters:
        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.
      • distribute

        public boolean distribute​(int maxBytes,
                                  StreamByteDistributor.Writer writer)
                           throws Http2Exception
        Description copied from interface: StreamByteDistributor
        Distributes up to 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 StreamByteDistributor.updateStreamableBytes(StreamState).

        Specified by:
        distribute in interface StreamByteDistributor
        Parameters:
        maxBytes - the maximum number of bytes to write.
        Returns:
        true if there are still streamable bytes that have not yet been written, otherwise false.
        Throws:
        Http2Exception - If an internal exception occurs and internal connection state would otherwise be corrupted.