Session

Undocumented in source.
final
class Session {}

Constructors

this
this(bool server, Connector callbacks, Options options)
Undocumented in source.

Destructor

~this
~this()
Undocumented in source.

Members

Functions

addGoAway
ErrorCode addGoAway(int last_stream_id, FrameError error_code, string opaque_data, GoAwayAuxFlags aux_flags)
Undocumented in source. Be warned that the author may not have intended to support it.
addItem
ErrorCode addItem(OutboundItem item)
Undocumented in source. Be warned that the author may not have intended to support it.
addPing
void addPing(FrameFlags flags, ubyte[] opaque_data)
Undocumented in source. Be warned that the author may not have intended to support it.
addRstStream
void addRstStream(int stream_id, FrameError error_code)
Undocumented in source. Be warned that the author may not have intended to support it.
addSettings
ErrorCode addSettings(FrameFlags flags, Setting[] iva)
Undocumented in source. Be warned that the author may not have intended to support it.
addWindowUpdate
void addWindowUpdate(FrameFlags flags, int stream_id, int window_size_increment)
Undocumented in source. Be warned that the author may not have intended to support it.
adjustClosedStream
void adjustClosedStream(int offset)
Undocumented in source. Be warned that the author may not have intended to support it.
adjustIdleStream
void adjustIdleStream()
Undocumented in source. Be warned that the author may not have intended to support it.
adjustRecvWindowSize
bool adjustRecvWindowSize(int _recv_window_size, size_t delta, int local_window_size)
Undocumented in source. Be warned that the author may not have intended to support it.
afterFrameSent
ErrorCode afterFrameSent()
Undocumented in source. Be warned that the author may not have intended to support it.
afterHeaderBlockReceived
ErrorCode afterHeaderBlockReceived()
Undocumented in source. Be warned that the author may not have intended to support it.
callOnFrame
bool callOnFrame(Frame frame)
Undocumented in source. Be warned that the author may not have intended to support it.
callOnFrameHeader
bool callOnFrameHeader(FrameHeader hd)
Undocumented in source. Be warned that the author may not have intended to support it.
callOnFrameReady
bool callOnFrameReady(Frame frame)
Undocumented in source. Be warned that the author may not have intended to support it.
callOnFrameSent
bool callOnFrameSent(Frame frame)
Undocumented in source. Be warned that the author may not have intended to support it.
callOnHeaderField
bool callOnHeaderField(Frame frame, HeaderField hf, bool pause, bool close)
Undocumented in source. Be warned that the author may not have intended to support it.
callOnHeaders
bool callOnHeaders(Frame frame)
Undocumented in source. Be warned that the author may not have intended to support it.
callRead
int callRead(ubyte[] buf)
Undocumented in source. Be warned that the author may not have intended to support it.
callSelectPadding
int callSelectPadding(Frame frame, size_t max_payloadlen)
Undocumented in source. Be warned that the author may not have intended to support it.
callWriteData
ErrorCode callWriteData(OutboundItem item, Buffers framebufs)
Undocumented in source. Be warned that the author may not have intended to support it.
closeStream
ErrorCode closeStream(int stream_id, FrameError error_code)
Undocumented in source. Be warned that the author may not have intended to support it.
closeStreamIfShutRdWr
ErrorCode closeStreamIfShutRdWr(Stream stream)
Undocumented in source. Be warned that the author may not have intended to support it.
closeStreamOnGoAway
ErrorCode closeStreamOnGoAway(int last_stream_id, bool incoming)
Undocumented in source. Be warned that the author may not have intended to support it.
consume
ErrorCode consume(int stream_id, size_t size)

Tells the Session that |size| bytes for a stream denoted by |stream_id| were consumed by application and are ready to WINDOW_UPDATE. The consumed bytes are counted towards both connection and stream level WINDOW_UPDATE (see consumeConnection and consumeStream). This function is intended to be used without automatic window update (see Options.setNoAutoWindowUpdate.

consumeConnection
ErrorCode consumeConnection(size_t size)

Like consume, but this only tells library that |size| bytes were consumed only for connection level. Note that HTTP/2 maintains connection and stream level flow control windows independently.

consumeStream
ErrorCode consumeStream(int stream_id, size_t size)

@function

cycleWeightOutboundItem
void cycleWeightOutboundItem(OutboundItem item, int ini_weight)
Undocumented in source. Be warned that the author may not have intended to support it.
destroyStream
void destroyStream(Stream stream)
Undocumented in source. Be warned that the author may not have intended to support it.
detachIdleStream
void detachIdleStream(Stream stream)
Undocumented in source. Be warned that the author may not have intended to support it.
endHeadersReceived
ErrorCode endHeadersReceived(Frame frame, Stream stream)
Undocumented in source. Be warned that the author may not have intended to support it.
endRequestHeadersReceived
void endRequestHeadersReceived(Frame frame, Stream stream)
Undocumented in source. Be warned that the author may not have intended to support it.
endResponseHeadersReceived
ErrorCode endResponseHeadersReceived(Frame frame, Stream stream)
Undocumented in source. Be warned that the author may not have intended to support it.
enforceFlowControlLimits
int enforceFlowControlLimits(Stream stream, int requested_window_size)
Undocumented in source. Be warned that the author may not have intended to support it.
estimateHeadersPayload
size_t estimateHeadersPayload(HeaderField[] hfa, size_t additional)
Undocumented in source. Be warned that the author may not have intended to support it.
free
void free()

Frees any resources allocated for Session. If Session is null, this function does nothing.

freeAllStreams
void freeAllStreams()
Undocumented in source. Be warned that the author may not have intended to support it.
getEffectiveLocalWindowSize
int getEffectiveLocalWindowSize()

Returns the local (receive) window size for a connection. The local window size can be adjusted by submitWindowUpdate. This function takes into account that and returns effective window size.

getEffectiveRecvDataLength
int getEffectiveRecvDataLength()

Returns the number of DATA payload in bytes received without WINDOW_UPDATE transmission for a connection. The local (receive) window size can be adjusted by submitWindowUpdate. This function takes into account that and returns effective data length. In particular, if the local window size is reduced by submitting negative window_size_increment with submitWindowUpdate, this function returns the number of bytes less than actually received.

getLastProcStreamID
int getLastProcStreamID()

@function

getNextOutboundItem
OutboundItem getNextOutboundItem()
Undocumented in source. Be warned that the author may not have intended to support it.
getNextStreamID
uint getNextStreamID()

Returns the next outgoing stream ID. Notice that return type is uint. If we run out of stream ID for this session, this function returns 1 << 31.

getNumActiveStreams
size_t getNumActiveStreams()
Undocumented in source. Be warned that the author may not have intended to support it.
getOutboundQueueSize
size_t getOutboundQueueSize()

Returns the number of frames in the outbound queue. This does not include the deferred DATA frames.

getRemoteSettings
uint getRemoteSettings(SettingsID id)

Returns the value of SETTINGS |id| notified by a remote endpoint. The |id| must be one of values defined in SettingsID.

getRemoteWindowSize
int getRemoteWindowSize()

Returns the remote window size for a connection.

getStream
Stream getStream(int stream_id)
Undocumented in source. Be warned that the author may not have intended to support it.
getStreamEffectiveLocalWindowSize
int getStreamEffectiveLocalWindowSize(int stream_id)

Returns the local (receive) window size for the stream |stream_id|. The local window size can be adjusted by submitWindowUpdate. This function takes into account that and returns effective window size.

getStreamEffectiveRecvDataLength
int getStreamEffectiveRecvDataLength(int stream_id)

Returns the number of DATA payload in bytes received without WINDOW_UPDATE transmission for the stream |stream_id|. The local (receive) window size can be adjusted by submitWindowUpdate. This function takes into account that and returns effective data length. In particular, if the local window size is reduced by submitting negative window_size_increment with submitWindowUpdate, this function returns the number of bytes less than actually received.

getStreamLocalClose
int getStreamLocalClose(int stream_id)

Returns 1 if local peer half closed the given stream |stream_id|. Returns 0 if it did not. Returns -1 if no such stream exists.

getStreamRaw
Stream getStreamRaw(int stream_id)
Undocumented in source. Be warned that the author may not have intended to support it.
getStreamRemoteClose
int getStreamRemoteClose(int stream_id)

Returns 1 if remote peer half closed the given stream |stream_id|. Returns 0 if it did not. Returns -1 if no such stream exists.

getStreamRemoteWindowSize
int getStreamRemoteWindowSize(int stream_id)

Returns the remote window size for a given stream |stream_id|.

getStreamUserData
void* getStreamUserData(int stream_id)

Returns stream_user_data for the stream |stream_id|. The stream_user_data is provided by submitRequest(), submitHeaders() or setStreamUserData(). Unless it is set using setStreamUserData(), if the stream is initiated by the remote endpoint, stream_user_data is always null. If the stream does not exist, this function returns null.

handleInflateInvalidConnection
ErrorCode handleInflateInvalidConnection(Frame frame, FrameError error_code, string reason)
Undocumented in source. Be warned that the author may not have intended to support it.
handleInflateInvalidStream
ErrorCode handleInflateInvalidStream(Frame frame, FrameError error_code)
Undocumented in source. Be warned that the author may not have intended to support it.
handleInvalidConnection
ErrorCode handleInvalidConnection(Frame frame, FrameError error_code, string reason)
Undocumented in source. Be warned that the author may not have intended to support it.
handleInvalidStream
ErrorCode handleInvalidStream(Frame frame, FrameError error_code)
Undocumented in source. Be warned that the author may not have intended to support it.
handleInvalidStream2
ErrorCode handleInvalidStream2(int stream_id, Frame frame, FrameError error_code)
Undocumented in source. Be warned that the author may not have intended to support it.
headersAddPad
ErrorCode headersAddPad(Frame frame)
Undocumented in source. Be warned that the author may not have intended to support it.
idleStreamDetect
bool idleStreamDetect(int stream_id)
Undocumented in source. Be warned that the author may not have intended to support it.
inflateHeaderBlock
ErrorCode inflateHeaderBlock(Frame frame, size_t readlen_ref, ubyte[] input, bool is_final, bool call_header_cb)
Undocumented in source. Be warned that the author may not have intended to support it.
isClosing
bool isClosing()
Undocumented in source. Be warned that the author may not have intended to support it.
isHTTPMessagingEnabled
bool isHTTPMessagingEnabled()
Undocumented in source. Be warned that the author may not have intended to support it.
isIncomingConcurrentStreamsMax
bool isIncomingConcurrentStreamsMax()
Undocumented in source. Be warned that the author may not have intended to support it.
isIncomingConcurrentStreamsPendingMax
bool isIncomingConcurrentStreamsPendingMax()
Undocumented in source. Be warned that the author may not have intended to support it.
isMyStreamId
bool isMyStreamId(int stream_id)
Undocumented in source. Be warned that the author may not have intended to support it.
isNewPeerStreamId
bool isNewPeerStreamId(int stream_id)
Undocumented in source. Be warned that the author may not have intended to support it.
isOutgoingConcurrentStreamsMax
bool isOutgoingConcurrentStreamsMax()
Undocumented in source. Be warned that the author may not have intended to support it.
isReservedLocal
bool isReservedLocal(Stream stream)
Undocumented in source. Be warned that the author may not have intended to support it.
isReservedRemote
bool isReservedRemote(Stream stream)
Undocumented in source. Be warned that the author may not have intended to support it.
isTrailerHeaders
bool isTrailerHeaders(Stream stream, Frame frame)
Undocumented in source. Be warned that the author may not have intended to support it.
keepClosedStream
void keepClosedStream(Stream stream)
Undocumented in source. Be warned that the author may not have intended to support it.
keepIdleStream
void keepIdleStream(Stream stream)
Undocumented in source. Be warned that the author may not have intended to support it.
memRecv
int memRecv(ubyte[] input)

Processes data |input| as an input from the remote endpoint. The |inlen| indicates the number of bytes in the |in|.

memSend
ErrorCode memSend(ubyte[] data_arr)

@function

memSendInternal
ErrorCode memSendInternal(ubyte[] data_arr, bool fast_cb)
Undocumented in source. Be warned that the author may not have intended to support it.
nextDataRead
int nextDataRead(Stream stream)
Undocumented in source. Be warned that the author may not have intended to support it.
onData
ErrorCode onData(Frame frame)
Undocumented in source. Be warned that the author may not have intended to support it.
onDataFailFast
ErrorCode onDataFailFast()
Undocumented in source. Be warned that the author may not have intended to support it.
onGoAway
ErrorCode onGoAway(Frame frame)
Undocumented in source. Be warned that the author may not have intended to support it.
onHeaders
ErrorCode onHeaders(Frame frame, Stream stream)
Undocumented in source. Be warned that the author may not have intended to support it.
onPing
ErrorCode onPing(Frame frame)
Undocumented in source. Be warned that the author may not have intended to support it.
onPriority
ErrorCode onPriority(Frame frame)
Undocumented in source. Be warned that the author may not have intended to support it.
onPushPromise
ErrorCode onPushPromise(Frame frame)
Undocumented in source. Be warned that the author may not have intended to support it.
onPushResponseHeaders
ErrorCode onPushResponseHeaders(Frame frame, Stream stream)
Undocumented in source. Be warned that the author may not have intended to support it.
onRequestHeaders
ErrorCode onRequestHeaders(Frame frame)
Undocumented in source. Be warned that the author may not have intended to support it.
onResponseHeaders
ErrorCode onResponseHeaders(Frame frame, Stream stream)
Undocumented in source. Be warned that the author may not have intended to support it.
onRstStream
ErrorCode onRstStream(Frame frame)
Undocumented in source. Be warned that the author may not have intended to support it.
onSettings
ErrorCode onSettings(Frame frame, bool noack)
Undocumented in source. Be warned that the author may not have intended to support it.
onWindowUpdate
ErrorCode onWindowUpdate(Frame frame)
Undocumented in source. Be warned that the author may not have intended to support it.
openStream
Stream openStream(int stream_id, StreamFlags flags, PrioritySpec pri_spec_in, StreamState initial_state, void* stream_user_data)

Creates new stream in Session with stream ID |stream_id|, priority |pri_spec| and flags |flags|. The |flags| is bitwise OR of StreamFlags. Since this function is called when initial HEADERS is sent or received, these flags are taken from it. The state of stream is set to |initial_state|. The |stream_user_data| is a pointer to the arbitrary user supplied data to be associated to this stream.

packData
ErrorCode packData(Buffers bufs, int datamax, Frame frame, DataAuxData aux_data)
Undocumented in source. Be warned that the author may not have intended to support it.
popNextOutboundItem
OutboundItem popNextOutboundItem()
Undocumented in source. Be warned that the author may not have intended to support it.
predicateDataSend
ErrorCode predicateDataSend(Stream stream)
Undocumented in source. Be warned that the author may not have intended to support it.
predicateForStreamSend
ErrorCode predicateForStreamSend(Stream stream)
Undocumented in source. Be warned that the author may not have intended to support it.
predicateHeadersSend
ErrorCode predicateHeadersSend(Stream stream)
Undocumented in source. Be warned that the author may not have intended to support it.
predicatePushPromiseSend
ErrorCode predicatePushPromiseSend(Stream stream)
Undocumented in source. Be warned that the author may not have intended to support it.
predicatePushResponseHeadersSend
ErrorCode predicatePushResponseHeadersSend(Stream stream)
Undocumented in source. Be warned that the author may not have intended to support it.
predicateRequestHeadersSend
ErrorCode predicateRequestHeadersSend(OutboundItem item)
Undocumented in source. Be warned that the author may not have intended to support it.
predicateResponseHeadersSend
ErrorCode predicateResponseHeadersSend(Stream stream)
Undocumented in source. Be warned that the author may not have intended to support it.
predicateWindowUpdateSend
ErrorCode predicateWindowUpdateSend(int stream_id)
Undocumented in source. Be warned that the author may not have intended to support it.
prepareFrame
ErrorCode prepareFrame(OutboundItem item)
Undocumented in source. Be warned that the author may not have intended to support it.
processDataFrame
ErrorCode processDataFrame()
Undocumented in source. Be warned that the author may not have intended to support it.
processGoAwayFrame
ErrorCode processGoAwayFrame()
Undocumented in source. Be warned that the author may not have intended to support it.
processHeadersFrame
ErrorCode processHeadersFrame()
Undocumented in source. Be warned that the author may not have intended to support it.
processPingFrame
ErrorCode processPingFrame()
Undocumented in source. Be warned that the author may not have intended to support it.
processPriorityFrame
ErrorCode processPriorityFrame()
Undocumented in source. Be warned that the author may not have intended to support it.
processPushPromiseFrame
ErrorCode processPushPromiseFrame()
Undocumented in source. Be warned that the author may not have intended to support it.
processRstStreamFrame
ErrorCode processRstStreamFrame()
Undocumented in source. Be warned that the author may not have intended to support it.
processSettingsFrame
ErrorCode processSettingsFrame()
Undocumented in source. Be warned that the author may not have intended to support it.
processWindowUpdateFrame
ErrorCode processWindowUpdateFrame()
Undocumented in source. Be warned that the author may not have intended to support it.
recv
ErrorCode recv()

Receives frames from the remote peer.

reprioritizeStream
void reprioritizeStream(Stream stream, PrioritySpec pri_spec)
Undocumented in source. Be warned that the author may not have intended to support it.
resetActiveOutboundItem
ErrorCode resetActiveOutboundItem()
Undocumented in source. Be warned that the author may not have intended to support it.
resumeData
ErrorCode resumeData(int stream_id)

Puts back previously deferred DATA frame in the stream |stream_id| to the outbound queue.

send
ErrorCode send()

Sends pending frames to the remote peer.

setNextStreamID
ErrorCode setNextStreamID(int _next_stream_id)

Tells the Session that next stream ID is |next_stream_id|. The |next_stream_id| must be equal or greater than the value returned by getNextStreamID().

setStreamUserData
ErrorCode setStreamUserData(int stream_id, void* stream_user_data)

Sets the |stream_user_data| to the stream denoted by the |stream_id|. If a stream user data is already set to the stream, it is replaced with the |stream_user_data|. It is valid to specify null in the |stream_user_data|, which nullifies the associated data pointer.

terminateSession
ErrorCode terminateSession(int last_stream_id, FrameError error_code, string reason)
Undocumented in source. Be warned that the author may not have intended to support it.
terminateSession
ErrorCode terminateSession(int last_stream_id, FrameError error_code)

Signals the session so that the connection should be terminated.

terminateSession
ErrorCode terminateSession(FrameError error_code)

Signals the session so that the connection should be terminated.

terminateSessionWithReason
ErrorCode terminateSessionWithReason(FrameError error_code, string reason)
Undocumented in source. Be warned that the author may not have intended to support it.
updateConnectionConsumedSize
ErrorCode updateConnectionConsumedSize(size_t delta_size)
Undocumented in source. Be warned that the author may not have intended to support it.
updateConsumedSize
ErrorCode updateConsumedSize(int consumed_size, int recv_window_size, int stream_id, size_t delta_size, int local_window_size)
Undocumented in source. Be warned that the author may not have intended to support it.
updateLocalInitialWindowSize
ErrorCode updateLocalInitialWindowSize(int new_initial_window_size, int old_initial_window_size)
Undocumented in source. Be warned that the author may not have intended to support it.
updateLocalSettings
ErrorCode updateLocalSettings(Setting[] iva)
Undocumented in source. Be warned that the author may not have intended to support it.
updateRecvConnectionWindowSize
ErrorCode updateRecvConnectionWindowSize(size_t delta_size)
Undocumented in source. Be warned that the author may not have intended to support it.
updateRecvStreamWindowSize
void updateRecvStreamWindowSize(Stream stream, size_t delta_size, int send_window_update)
Undocumented in source. Be warned that the author may not have intended to support it.
updateRemoteInitialWindowSize
ErrorCode updateRemoteInitialWindowSize(int new_initial_window_size)
Undocumented in source. Be warned that the author may not have intended to support it.
updateStreamConsumedSize
ErrorCode updateStreamConsumedSize(Stream stream, size_t delta_size)
Undocumented in source. Be warned that the author may not have intended to support it.
upgrade
ErrorCode upgrade(ubyte[] settings_payload, void* stream_user_data)

Performs post-process of HTTP Upgrade request. This function can be called from both client and server, but the behavior is very different in each other.

validateHeaderField
ErrorCode validateHeaderField(Stream stream, Frame frame, HeaderField hf, bool trailer)
Undocumented in source. Be warned that the author may not have intended to support it.
wantRead
bool wantRead()

Returns true value if Session wants to receive data from the remote peer.

wantWrite
bool wantWrite()

Returns true value if Session wants to send data to the remote peer.

Properties

ob_pq_top
OutboundItem ob_pq_top [@property getter]
Undocumented in source. Be warned that the author may not have intended to support it.

Variables

aob
ActiveOutboundItem aob;
Undocumented in source.
closed_stream_head
Stream closed_stream_head;

Points to the latest closed stream. null if there is no closed stream. Notes: Only used when session is initialized as server.

closed_stream_tail
Stream closed_stream_tail;

Points to the oldest closed stream. null if there is no closed stream. Notes: Only used when session is initialized as server.

connector
Connector connector;
Undocumented in source.
consumed_size
int consumed_size;

The number of bytes consumed by the application and now is subject to WINDOW_UPDATE. Notes: This is only used when auto WINDOW_UPDATE is turned off.

goaway_flags
GoAwayFlags goaway_flags;

Flags indicating GOAWAY is sent and/or recieved.

hd_deflater
Deflater hd_deflater;
Undocumented in source.
hd_inflater
Inflater hd_inflater;
Undocumented in source.
idle_stream_head
Stream idle_stream_head;

Points to the latest idle stream. null if there is no idle stream. Notes: Only used when session is initialized as server .

idle_stream_tail
Stream idle_stream_tail;

Points to the oldest idle stream. null if there is no idle stream. Notes: Only used when session is initialized as server.

iframe
InboundFrame iframe;
Undocumented in source.
inflight_iva
Setting[] inflight_iva;

In-flight SETTINGS values. null for no in-flight SETTINGS.

is_server
bool is_server;

true if the session is server side.

last_cycle
ulong last_cycle;

Reset count of OutboundItem's weight. We decrements weight each time DATA is sent to simulate resource sharing. We use priority queue and larger weight has the precedence. If weight is reached to lowest weight, it resets to its initial weight. If this happens, other items which have the lower weight currently but same initial weight cannot send DATA until item having large weight is decreased. To avoid this, we use this cycle variable. Initally, this is set to 1. If weight gets lowest weight, and if item's cycle == last_cycle, we increments last_cycle and assigns it to item's cycle. Otherwise, just assign last_cycle. In priority queue comparator, we first compare items' cycle value. Lower cycle value has the precedence.

last_proc_stream_id
int last_proc_stream_id;

The largest stream ID which has been processed in some way. Notes: This value will be used as last-stream-id when sending GOAWAY frame.

last_recv_stream_id
int last_recv_stream_id;

The largest stream ID received so far

local_last_stream_id
int local_last_stream_id;

This is the last-stream-ID we have sent in GOAWAY

local_settings
SettingsStorage local_settings;

Settings value of the local endpoint.

local_window_size
int local_window_size;

window size for local flow control. It is initially set to INITIAL_CONNECTION_WINDOW_SIZE and could be increased/decreased by submitting WINDOW_UPDATE. See submitWindowUpdate().

next_seq
long next_seq;

Sequence number of outbound frame to maintain the order of enqueue if priority is equal.

next_stream_id
uint next_stream_id;

Next Stream ID. Made unsigned int to detect >= (1 << 31).

next_unique_id
uint next_unique_id;

Counter of unique ID of PING. Wraps when it exceeds max_UNIQUE_ID */

num_closed_streams
size_t num_closed_streams;

The number of closed streams still kept in |streams| hash. The closed streams can be accessed through single linked list |closed_stream_head|. Notes: The current implementation only keeps incoming streams if session is initialized as server.

num_idle_streams
size_t num_idle_streams;

The number of idle streams kept in |streams| hash. The idle streams can be accessed through doubly linked list |idle_stream_head|. Notes: The current implementation only keeps idle streams if session is initialized as server.

num_incoming_streams
size_t num_incoming_streams;

The number of incoming streams. This will be capped by local_settings.max_concurrent_streams.

num_outgoing_streams
size_t num_outgoing_streams;

The number of outgoing streams. This will be capped by remote_settings.max_concurrent_streams.

ob_da_pq
PriorityQueue ob_da_pq;

Priority Queue for DATA frame

ob_pq
PriorityQueue ob_pq;

Priority Queue for outbound frames other than stream-starting HEADERS and DATA

ob_ss_pq
PriorityQueue ob_ss_pq;

Priority Queue for outbound stream-starting HEADERS frame

opt_flags
OptionsMask opt_flags;

Option flags. This is bitwise-OR of 0 or more of OptionsMask.

pending_enable_push
bool pending_enable_push;

Unacked local ENABLE_PUSH value. We use this to refuse PUSH_PROMISE before SETTINGS ACK is received.

pending_local_max_concurrent_stream
uint pending_local_max_concurrent_stream;

Unacked local Setting.MAX_CONCURRENT_STREAMS value. We use this to refuse the incoming stream if it exceeds this value.

recv_reduction
int recv_reduction;

The amount of recv_window_size cut using submitting negative value to WINDOW_UPDATE

recv_window_size
int recv_window_size;

Keep track of the number of bytes received without WINDOW_UPDATE. This could be negative after submitting negative value to WINDOW_UPDATE.

remote_last_stream_id
int remote_last_stream_id;

This is the value in GOAWAY frame received from remote endpoint.

remote_settings
SettingsStorage remote_settings;

Settings value received from the remote endpoint. We just use ID as index. The index = 0 is unused.

remote_window_size
int remote_window_size;

Current sender window size. This value is computed against the current initial window size of remote endpoint.

roots
StreamRoots roots;
Undocumented in source.
streams
HashMap!(int, Stream) streams;
Undocumented in source.

Meta