Interface Http2FlowController

    • Method Summary

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      void channelHandlerContext​(io.netty.channel.ChannelHandlerContext ctx)
      Set the ChannelHandlerContext for which to apply flow control on.
      void incrementWindowSize​(Http2Stream stream, int delta)
      Increments the size of the stream's flow control window by the given delta.
      int initialWindowSize()
      Gets the connection-wide initial flow control window size that is used as the basis for new stream flow control windows.
      void initialWindowSize​(int newWindowSize)
      Sets the connection-wide initial flow control window and updates all stream windows (but not the connection stream window) by the delta.
      int windowSize​(Http2Stream stream)
      Get the portion of the flow control window for the given stream that is currently available for sending/receiving frames which are subject to flow control.
    • Method Detail

      • channelHandlerContext

        void channelHandlerContext​(io.netty.channel.ChannelHandlerContext ctx)
                            throws Http2Exception
        Set the ChannelHandlerContext for which to apply flow control on.

        This must be called to properly initialize the Http2FlowController. Not calling this is considered a programming error.

        Parameters:
        ctx - The ChannelHandlerContext for which to apply flow control on.
        Throws:
        Http2Exception - if any protocol-related error occurred.
      • initialWindowSize

        void initialWindowSize​(int newWindowSize)
                        throws Http2Exception
        Sets the connection-wide initial flow control window and updates all stream windows (but not the connection stream window) by the delta.

        Represents the value for SETTINGS_INITIAL_WINDOW_SIZE. This method should only be called by Netty (not users) as a result of a receiving a SETTINGS frame.

        Parameters:
        newWindowSize - the new initial window size.
        Throws:
        Http2Exception - thrown if any protocol-related error occurred.
      • windowSize

        int windowSize​(Http2Stream stream)
        Get the portion of the flow control window for the given stream that is currently available for sending/receiving frames which are subject to flow control. This quantity is measured in number of bytes.
      • incrementWindowSize

        void incrementWindowSize​(Http2Stream stream,
                                 int delta)
                          throws Http2Exception
        Increments the size of the stream's flow control window by the given delta.

        In the case of a Http2RemoteFlowController this is called upon receipt of a WINDOW_UPDATE frame from the remote endpoint to mirror the changes to the window size.

        For a Http2LocalFlowController this can be called to request the expansion of the window size published by this endpoint. It is up to the implementation, however, as to when a WINDOW_UPDATE is actually sent.

        Parameters:
        stream - The subject stream. Use Http2Connection.connectionStream() for requesting the size of the connection window.
        delta - the change in size of the flow control window.
        Throws:
        Http2Exception - thrown if a protocol-related error occurred.