bcb180b08d
Motivation: The connection, priority tree, and inbound/outbound flow controllers each maintain a separate map for stream information. This is wasteful and complicates the design since as streams are added/removed, multiple structures have to be updated. Modifications: - Merging the priority tree into Http2Connection. Then we can use Http2Connection as the central stream repository. - Adding observer pattern to Http2Connection so flow controllers can be told when a new stream is created, closed, etc. - Adding properties for inboundFlow/outboundFlow state to Http2Stream. This allows the controller to access flow control state directly from the stream without requiring additional structures. - Separate out the StreamRemovalPolicy and created a "default" implementation that runs periodic garbage collection. This used to be internal to the outbound flow controller, but I think it is more general than that. Result: HTTP/2 classes will require less storage for new streams. |
||
---|---|---|
.. | ||
main/java/io/netty/handler/codec/http2 | ||
test/java/io/netty/handler/codec/http2 |