ConsumedBytesConverter Class — netty Architecture
Architecture documentation for the ConsumedBytesConverter class in DelegatingDecompressorFrameListener.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD 998fc2ae_88e4_7eb3_dcc9_7f7b916cf359["ConsumedBytesConverter"] cdec0447_51ad_ffa5_e1e6_2257690237d4["DelegatingDecompressorFrameListener.java"] 998fc2ae_88e4_7eb3_dcc9_7f7b916cf359 -->|defined in| cdec0447_51ad_ffa5_e1e6_2257690237d4 c9cdff4c_da69_9aa2_b935_e6ba7f270975["ConsumedBytesConverter()"] 998fc2ae_88e4_7eb3_dcc9_7f7b916cf359 -->|method| c9cdff4c_da69_9aa2_b935_e6ba7f270975 b70b65f0_f69b_7e78_8719_754097a3f837["Http2LocalFlowController()"] 998fc2ae_88e4_7eb3_dcc9_7f7b916cf359 -->|method| b70b65f0_f69b_7e78_8719_754097a3f837 3df6275f_2fe1_c93f_4462_bafaa9f15952["channelHandlerContext()"] 998fc2ae_88e4_7eb3_dcc9_7f7b916cf359 -->|method| 3df6275f_2fe1_c93f_4462_bafaa9f15952 52ea517b_42ef_8062_46cc_fd49a18242b2["initialWindowSize()"] 998fc2ae_88e4_7eb3_dcc9_7f7b916cf359 -->|method| 52ea517b_42ef_8062_46cc_fd49a18242b2 8be0d496_7129_ec64_e60c_01e1aeeb6035["windowSize()"] 998fc2ae_88e4_7eb3_dcc9_7f7b916cf359 -->|method| 8be0d496_7129_ec64_e60c_01e1aeeb6035 4050efac_803f_1055_e456_5a0faf75beff["incrementWindowSize()"] 998fc2ae_88e4_7eb3_dcc9_7f7b916cf359 -->|method| 4050efac_803f_1055_e456_5a0faf75beff db9935aa_54d8_b68b_f11d_46daa46d6300["receiveFlowControlledFrame()"] 998fc2ae_88e4_7eb3_dcc9_7f7b916cf359 -->|method| db9935aa_54d8_b68b_f11d_46daa46d6300 9cfe131c_a545_603f_e1f1_9635e11cff4e["consumeBytes()"] 998fc2ae_88e4_7eb3_dcc9_7f7b916cf359 -->|method| 9cfe131c_a545_603f_e1f1_9635e11cff4e 04e88b45_2756_828f_9924_87ff23c8df4c["unconsumedBytes()"] 998fc2ae_88e4_7eb3_dcc9_7f7b916cf359 -->|method| 04e88b45_2756_828f_9924_87ff23c8df4c
Relationship Graph
Source Code
codec-http2/src/main/java/io/netty/handler/codec/http2/DelegatingDecompressorFrameListener.java lines 290–360
private final class ConsumedBytesConverter implements Http2LocalFlowController {
private final Http2LocalFlowController flowController;
ConsumedBytesConverter(Http2LocalFlowController flowController) {
this.flowController = checkNotNull(flowController, "flowController");
}
@Override
public Http2LocalFlowController frameWriter(Http2FrameWriter frameWriter) {
return flowController.frameWriter(frameWriter);
}
@Override
public void channelHandlerContext(ChannelHandlerContext ctx) throws Http2Exception {
flowController.channelHandlerContext(ctx);
}
@Override
public void initialWindowSize(int newWindowSize) throws Http2Exception {
flowController.initialWindowSize(newWindowSize);
}
@Override
public int initialWindowSize() {
return flowController.initialWindowSize();
}
@Override
public int windowSize(Http2Stream stream) {
return flowController.windowSize(stream);
}
@Override
public void incrementWindowSize(Http2Stream stream, int delta) throws Http2Exception {
flowController.incrementWindowSize(stream, delta);
}
@Override
public void receiveFlowControlledFrame(Http2Stream stream, ByteBuf data, int padding,
boolean endOfStream) throws Http2Exception {
flowController.receiveFlowControlledFrame(stream, data, padding, endOfStream);
}
@Override
public boolean consumeBytes(Http2Stream stream, int numBytes) throws Http2Exception {
Http2Decompressor decompressor = decompressor(stream);
if (decompressor != null) {
// Convert the decompressed bytes to compressed (on the wire) bytes.
numBytes = decompressor.consumeBytes(stream.id(), numBytes);
}
try {
return flowController.consumeBytes(stream, numBytes);
} catch (Http2Exception e) {
throw e;
} catch (Throwable t) {
// The stream should be closed at this point. We have already changed our state tracking the compressed
// bytes, and there is no guarantee we can recover if the underlying flow controller throws.
throw streamError(stream.id(), INTERNAL_ERROR, t, "Error while returning bytes to flow control window");
}
}
@Override
public int unconsumedBytes(Http2Stream stream) {
return flowController.unconsumedBytes(stream);
}
@Override
public int initialWindowSize(Http2Stream stream) {
return flowController.initialWindowSize(stream);
}
}
Defined In
Source
Frequently Asked Questions
What is the ConsumedBytesConverter class?
ConsumedBytesConverter is a class in the netty codebase, defined in codec-http2/src/main/java/io/netty/handler/codec/http2/DelegatingDecompressorFrameListener.java.
Where is ConsumedBytesConverter defined?
ConsumedBytesConverter is defined in codec-http2/src/main/java/io/netty/handler/codec/http2/DelegatingDecompressorFrameListener.java at line 290.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free