in src/main/java/com/twitter/http2/HttpFrameDecoder.java [485:524]
private static State getNextState(int length, int type) {
switch (type) {
case HTTP_DATA_FRAME:
return State.READ_DATA_FRAME;
case HTTP_HEADERS_FRAME:
return State.READ_HEADERS_FRAME;
case HTTP_PRIORITY_FRAME:
return State.READ_PRIORITY_FRAME;
case HTTP_RST_STREAM_FRAME:
return State.READ_RST_STREAM_FRAME;
case HTTP_SETTINGS_FRAME:
return State.READ_SETTINGS_FRAME;
case HTTP_PUSH_PROMISE_FRAME:
return State.READ_PUSH_PROMISE_FRAME;
case HTTP_PING_FRAME:
return State.READ_PING_FRAME;
case HTTP_GOAWAY_FRAME:
return State.READ_GOAWAY_FRAME;
case HTTP_WINDOW_UPDATE_FRAME:
return State.READ_WINDOW_UPDATE_FRAME;
case HTTP_CONTINUATION_FRAME:
throw new Error("Shouldn't reach here.");
default:
if (length != 0) {
return State.SKIP_FRAME_PADDING;
} else {
return State.READ_FRAME_HEADER;
}
}
}