public interface Http2MultiplexerSupport
Multiplexes the outgoing side of the streams on a HTTP/2 connection.
Accepts the streams from the Pekko HTTP side and turns them into FrameEvent
s
to be passed to the network side.
The main interface between stream handling and multiplexing is this:
- stream handling can call enqueueOutStream
if a stream wants to send a data frame
- if there's connection window and the network pulls and there are no control frames to send, the multiplexer
state machine calls sendDataFrame
here. This calls pullNextFrame
to get the next frame and more info about
what the state of the stream is afterwards.
- stream handling can call closeStream
to remove a potentially enqueued stream
Mixed into the Http2ServerDemux graph logic.
Modifier and Type | Interface and Description |
---|---|
static interface |
Http2MultiplexerSupport.StateTimingSupport |
Modifier and Type | Method and Description |
---|---|
void |
allowReadingIncomingFrames(boolean allow)
Allows suspending reading of frames incoming from the network
|
Http2Multiplexer |
createMultiplexer(StreamPrioritizer prioritizer) |
void |
distributeWindowDeltaToAllStreams(int delta)
Called by the multiplexer after SETTINGS_INITIAL_WINDOW_SIZE has changed
|
void |
frameOutFinished()
Called by the multiplexer before canceling the stage on outlet cancellation
|
boolean |
isServer() |
void |
onAllDataFlushed() |
PullFrameResult |
pullNextFrame(int streamId,
int maxSize)
Called by the multiplexer when ready to send a data frame
|
void |
pushFrameOut(FrameEvent event) |
Http2CommonSettings |
settings() |
void allowReadingIncomingFrames(boolean allow)
Http2Multiplexer createMultiplexer(StreamPrioritizer prioritizer)
void distributeWindowDeltaToAllStreams(int delta)
void frameOutFinished()
boolean isServer()
void onAllDataFlushed()
PullFrameResult pullNextFrame(int streamId, int maxSize)
void pushFrameOut(FrameEvent event)
Http2CommonSettings settings()