Http2EmptyDataFrameListener Class — netty Architecture
Architecture documentation for the Http2EmptyDataFrameListener class in Http2EmptyDataFrameListener.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD 03c51870_f3be_7445_5544_6b0f3210decf["Http2EmptyDataFrameListener"] fafe6a13_4ec7_8f05_0ee8_9749f465ff0e["Http2EmptyDataFrameListener.java"] 03c51870_f3be_7445_5544_6b0f3210decf -->|defined in| fafe6a13_4ec7_8f05_0ee8_9749f465ff0e 7d9f516b_18e0_6393_89d5_7957e743234d["Http2EmptyDataFrameListener()"] 03c51870_f3be_7445_5544_6b0f3210decf -->|method| 7d9f516b_18e0_6393_89d5_7957e743234d 980dae73_1356_03ac_a545_834e26bc18cf["onDataRead()"] 03c51870_f3be_7445_5544_6b0f3210decf -->|method| 980dae73_1356_03ac_a545_834e26bc18cf a8426984_393c_9cc6_ea7e_fe7e8c5af835["onHeadersRead()"] 03c51870_f3be_7445_5544_6b0f3210decf -->|method| a8426984_393c_9cc6_ea7e_fe7e8c5af835
Relationship Graph
Source Code
codec-http2/src/main/java/io/netty/handler/codec/http2/Http2EmptyDataFrameListener.java lines 25–65
final class Http2EmptyDataFrameListener extends Http2FrameListenerDecorator {
private final int maxConsecutiveEmptyFrames;
private boolean violationDetected;
private int emptyDataFrames;
Http2EmptyDataFrameListener(Http2FrameListener listener, int maxConsecutiveEmptyFrames) {
super(listener);
this.maxConsecutiveEmptyFrames = ObjectUtil.checkPositive(
maxConsecutiveEmptyFrames, "maxConsecutiveEmptyFrames");
}
@Override
public int onDataRead(ChannelHandlerContext ctx, int streamId, ByteBuf data, int padding, boolean endOfStream)
throws Http2Exception {
if (endOfStream || data.isReadable()) {
emptyDataFrames = 0;
} else if (emptyDataFrames++ == maxConsecutiveEmptyFrames && !violationDetected) {
violationDetected = true;
throw Http2Exception.connectionError(Http2Error.ENHANCE_YOUR_CALM,
"Maximum number %d of empty data frames without end_of_stream flag received",
maxConsecutiveEmptyFrames);
}
return super.onDataRead(ctx, streamId, data, padding, endOfStream);
}
@Override
public void onHeadersRead(ChannelHandlerContext ctx, int streamId, Http2Headers headers,
int padding, boolean endStream) throws Http2Exception {
emptyDataFrames = 0;
super.onHeadersRead(ctx, streamId, headers, padding, endStream);
}
@Override
public void onHeadersRead(ChannelHandlerContext ctx, int streamId, Http2Headers headers, int streamDependency,
short weight, boolean exclusive, int padding, boolean endStream) throws Http2Exception {
emptyDataFrames = 0;
super.onHeadersRead(ctx, streamId, headers, streamDependency, weight, exclusive, padding, endStream);
}
}
Source
Frequently Asked Questions
What is the Http2EmptyDataFrameListener class?
Http2EmptyDataFrameListener is a class in the netty codebase, defined in codec-http2/src/main/java/io/netty/handler/codec/http2/Http2EmptyDataFrameListener.java.
Where is Http2EmptyDataFrameListener defined?
Http2EmptyDataFrameListener is defined in codec-http2/src/main/java/io/netty/handler/codec/http2/Http2EmptyDataFrameListener.java at line 25.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free