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.IOException
public boolean nextFrame(boolean requireSettings, Http2Reader.Handler handler) throws java.io.IOException
java.io.IOException
private void readHeaders(Http2Reader.Handler handler, int length, byte flags, int streamId) throws java.io.IOException
java.io.IOException
private java.util.List<Header> readHeaderBlock(int length, short padding, byte flags, int streamId) throws java.io.IOException
java.io.IOException
private void readData(Http2Reader.Handler handler, int length, byte flags, int streamId) throws java.io.IOException
java.io.IOException
private void readPriority(Http2Reader.Handler handler, int length, byte flags, int streamId) throws java.io.IOException
java.io.IOException
private void readPriority(Http2Reader.Handler handler, int streamId) throws java.io.IOException
java.io.IOException
private void readRstStream(Http2Reader.Handler handler, int length, byte flags, int streamId) throws java.io.IOException
java.io.IOException
private void readSettings(Http2Reader.Handler handler, int length, byte flags, int streamId) throws java.io.IOException
java.io.IOException
private void readPushPromise(Http2Reader.Handler handler, int length, byte flags, int streamId) throws java.io.IOException
java.io.IOException
private void readPing(Http2Reader.Handler handler, int length, byte flags, int streamId) throws java.io.IOException
java.io.IOException
private void readGoAway(Http2Reader.Handler handler, int length, byte flags, int streamId) throws java.io.IOException
java.io.IOException
private void readWindowUpdate(Http2Reader.Handler handler, int length, byte flags, int streamId) throws java.io.IOException
java.io.IOException
public void close() throws java.io.IOException
close
in interface java.io.Closeable
close
in interface java.lang.AutoCloseable
java.io.IOException
static int readMedium(okio.BufferedSource source) throws java.io.IOException
java.io.IOException
static int lengthWithoutPadding(int length, byte flags, short padding) throws java.io.IOException
java.io.IOException