in httpcore5-h2/src/main/java/org/apache/hc/core5/http2/frame/FramePrinter.java [43:94]
public void printFrameInfo(final RawFrame frame, final Appendable appendable) throws IOException {
appendable.append("stream ").append(Integer.toString(frame.getStreamId())).append(" frame: ");
final FrameType type = FrameType.valueOf(frame.getType());
appendable.append(Objects.toString(type))
.append(" (0x").append(Integer.toHexString(frame.getType())).append("); flags: ");
final int flags = frame.getFlags();
if (flags > 0) {
switch (type) {
case SETTINGS:
case PING:
if ((flags & FrameFlag.ACK.value) > 0) {
appendable.append(FrameFlag.ACK.name()).append(" ");
}
break;
case DATA:
if ((flags & FrameFlag.END_STREAM.value) > 0) {
appendable.append(FrameFlag.END_STREAM.name()).append(" ");
}
if ((flags & FrameFlag.PADDED.value) > 0) {
appendable.append(FrameFlag.PADDED.name()).append(" ");
}
break;
case HEADERS:
if ((flags & FrameFlag.END_STREAM.value) > 0) {
appendable.append(FrameFlag.END_STREAM.name()).append(" ");
}
if ((flags & FrameFlag.END_HEADERS.value) > 0) {
appendable.append(FrameFlag.END_HEADERS.name()).append(" ");
}
if ((flags & FrameFlag.PADDED.value) > 0) {
appendable.append(FrameFlag.PADDED.name()).append(" ");
}
if ((flags & FrameFlag.PRIORITY.value) > 0) {
appendable.append(FrameFlag.PRIORITY.name()).append(" ");
}
break;
case PUSH_PROMISE:
if ((flags & FrameFlag.END_HEADERS.value) > 0) {
appendable.append(FrameFlag.END_HEADERS.name()).append(" ");
}
if ((flags & FrameFlag.PADDED.value) > 0) {
appendable.append(FrameFlag.PADDED.name()).append(" ");
}
break;
case CONTINUATION:
if ((flags & FrameFlag.END_HEADERS.value) > 0) {
appendable.append(FrameFlag.END_HEADERS.name()).append(" ");
}
}
}
appendable.append("(0x").append(Integer.toHexString(flags)).append("); length: ").append(Integer.toString(frame.getLength()));
}