final class Http2Reader
extends java.lang.Object
implements java.io.Closeable
This implementation assumes we do not send an increased frame
size setting to the peer. Hence, we expect all frames to have a max length of Http2.INITIAL_MAX_FRAME_SIZE.
| Modifier and Type | Class and Description |
|---|---|
(package private) static class |
Http2Reader.ContinuationSource
Decompression of the header block occurs above the framing layer.
|
(package private) static interface |
Http2Reader.Handler |
| Modifier and Type | Field and Description |
|---|---|
private boolean |
client |
private Http2Reader.ContinuationSource |
continuation |
(package private) Hpack.Reader |
hpackReader |
(package private) static java.util.logging.Logger |
logger |
private okio.BufferedSource |
source |
| Constructor and Description |
|---|
Http2Reader(okio.BufferedSource source,
boolean client)
Creates a frame reader with max header table size of 4096.
|
| Modifier and Type | Method and Description |
|---|---|
void |
close() |
(package private) static int |
lengthWithoutPadding(int length,
byte flags,
short padding) |
boolean |
nextFrame(boolean requireSettings,
Http2Reader.Handler handler) |
void |
readConnectionPreface(Http2Reader.Handler handler) |
private void |
readData(Http2Reader.Handler handler,
int length,
byte flags,
int streamId) |
private void |
readGoAway(Http2Reader.Handler handler,
int length,
byte flags,
int streamId) |
private java.util.List<Header> |
readHeaderBlock(int length,
short padding,
byte flags,
int streamId) |
private void |
readHeaders(Http2Reader.Handler handler,
int length,
byte flags,
int streamId) |
(package private) static int |
readMedium(okio.BufferedSource source) |
private void |
readPing(Http2Reader.Handler handler,
int length,
byte flags,
int streamId) |
private void |
readPriority(Http2Reader.Handler handler,
int streamId) |
private void |
readPriority(Http2Reader.Handler handler,
int length,
byte flags,
int streamId) |
private void |
readPushPromise(Http2Reader.Handler handler,
int length,
byte flags,
int streamId) |
private void |
readRstStream(Http2Reader.Handler handler,
int length,
byte flags,
int streamId) |
private void |
readSettings(Http2Reader.Handler handler,
int length,
byte flags,
int streamId) |
private void |
readWindowUpdate(Http2Reader.Handler handler,
int length,
byte flags,
int streamId) |
static final java.util.logging.Logger logger
private final okio.BufferedSource source
private final Http2Reader.ContinuationSource continuation
private final boolean client
final Hpack.Reader hpackReader
Http2Reader(okio.BufferedSource source,
boolean client)
public void readConnectionPreface(Http2Reader.Handler handler) throws java.io.IOException
java.io.IOExceptionpublic boolean nextFrame(boolean requireSettings,
Http2Reader.Handler handler)
throws java.io.IOException
java.io.IOExceptionprivate void readHeaders(Http2Reader.Handler handler, int length, byte flags, int streamId) throws java.io.IOException
java.io.IOExceptionprivate java.util.List<Header> readHeaderBlock(int length, short padding, byte flags, int streamId) throws java.io.IOException
java.io.IOExceptionprivate void readData(Http2Reader.Handler handler, int length, byte flags, int streamId) throws java.io.IOException
java.io.IOExceptionprivate void readPriority(Http2Reader.Handler handler, int length, byte flags, int streamId) throws java.io.IOException
java.io.IOExceptionprivate void readPriority(Http2Reader.Handler handler, int streamId) throws java.io.IOException
java.io.IOExceptionprivate void readRstStream(Http2Reader.Handler handler, int length, byte flags, int streamId) throws java.io.IOException
java.io.IOExceptionprivate void readSettings(Http2Reader.Handler handler, int length, byte flags, int streamId) throws java.io.IOException
java.io.IOExceptionprivate void readPushPromise(Http2Reader.Handler handler, int length, byte flags, int streamId) throws java.io.IOException
java.io.IOExceptionprivate void readPing(Http2Reader.Handler handler, int length, byte flags, int streamId) throws java.io.IOException
java.io.IOExceptionprivate void readGoAway(Http2Reader.Handler handler, int length, byte flags, int streamId) throws java.io.IOException
java.io.IOExceptionprivate void readWindowUpdate(Http2Reader.Handler handler, int length, byte flags, int streamId) throws java.io.IOException
java.io.IOExceptionpublic void close()
throws java.io.IOException
close in interface java.io.Closeableclose in interface java.lang.AutoCloseablejava.io.IOExceptionstatic int readMedium(okio.BufferedSource source)
throws java.io.IOException
java.io.IOExceptionstatic int lengthWithoutPadding(int length,
byte flags,
short padding)
throws java.io.IOException
java.io.IOException