| Modifier and Type | Class and Description |
|---|---|
| private static interface | |
| private static class | |
| private static class | |
| private class |
| Modifier and Type | Field and Description |
|---|---|
| private final AtomicLong | |
| private final QuicConnectionImpl | |
| private final Logger | |
| private final Set | |
| private final AtomicLong | |
| private final AtomicLong | |
| private final int | |
| private final StreamCreationPermit | |
| private final int | |
| private final int | |
| private final StreamCreationPermit | |
| private static final long | |
| private static final long | |
| private final ConcurrentLinkedQueue | |
| private final Lock | |
| private final List | |
| private final AtomicLong | |
| private final AtomicLong | |
| private final ConcurrentMap | |
| private final int | |
| private final AtomicLong | |
| private final int | |
| private final AtomicLong | |
| private final QuicConnectionStreams. | |
| private final ConcurrentMap | |
| private final Set | |
| private final QuicConnectionStreams. | |
| private final AtomicLong |
| Access | Constructor and Description |
|---|---|
| public | QuicConnectionStreams(QuicConnectionImpl
the connection to which the streams managed by this
instance of connection, Logger debug)QuicConnectionStreams belong.Creates a new instance of |
| Modifier and Type | Method and Description |
|---|---|
| private void | |
| private long | |
| public void | addRemoteStreamListener(Predicate<? super QuicReceiverStream>
the listener streamConsumer)Adds a listener that will be invoked when a remote stream is created. |
| private void | announceStreamsBlocked(final boolean
true if the local endpoint is blocked for bidi streams, false for uni streams bidi, final long the stream creation limit due to which the local endpoint is
currently blocked blockedOnLimit)Runs the APPLICATION space packet transmitter, if necessary, to potentially trigger sending a STREAMS_BLOCKED frame to the peer |
| private long | Returns: number of bytes actually addedlist of frames frames, long maximum number of bytes that can be added by this method remaining)Checks whether any stream needs to have a STOP_SENDING, RESET_STREAM or any connection control frames like STREAMS_BLOCKED, MAX_STREAMS sent and adds the frame to the list if there's room. |
| private long | Returns: size of the added frame, or zero if no frame was addedthe receiver part of the stream receiver, QuicFrame the frame to send frame, List<QuicFrame> list of frames frames)Checks whether the given stream is recorded as needing a control frame to be sent, and if so, add that frame to the list |
| public CompletableFuture | Returns: a CompletableFuture whose result on successful completion will return the newly createdQuicBidiStreamthe maximum duration to wait to acquire a permit for stream creation timeout)Creates a new locally initiated bidirectional stream. |
| private CompletableFuture | |
| public CompletableFuture | Returns: a CompletableFuture whose result on successful completion will return the newly createdQuicSenderStreamthe maximum duration to wait to acquire a permit for stream creation timeout)Creates a new locally initiated unidirectional stream. |
| public void | enqueueForSending(long
the stream id of the stream which is ready streamId)This method is called by when a stream has data available for sending. |
| public final void | enqueueStreamDataBlocked()
If there are any streams in this connection that have been blocked from sending
data due to flow control limit on that stream, then this method enqueues a
|
| public QuicStream | Returns: the stream with the given stream ID if found,null
otherwise.a stream ID streamId)Finds a stream with the given stream ID. Returns |
| public QuicStream | Returns: a remotely initiated stream with the given stream ID. May return null if the stream was already closed.the stream ID streamId, long type of the frame received, used in exceptions frameType)Gets or opens a remotely initiated stream with the given stream ID. Creates all streams with lower IDs if needed. |
| public boolean | Returns: true if there is some data to sendReturns |
| public final boolean | Returns: true if there are any streams on this connection which are blocked from sending data due to flow control limit, false otherwiseReturns true if there are any streams on this connection which are blocked from sending data due to flow control limit, false otherwise. |
| public boolean | Returns: true if there are control frames to sendReturns true if there are control frames to send. |
| public boolean | Returns: true if the given streamId indicates a local
bidirectional streama stream ID streamId)Returns |
| public boolean | Returns: true if the given streamId indicates a local
unidirectional streama stream ID streamId)Returns |
| public boolean | Returns: true if the given streamId indicates a stream
that has a receiving parta stream ID streamId)Returns |
| public boolean | Returns: true if the given streamId indicates a
peer initiated bidirectional streama stream ID streamId)Returns |
| public boolean | Returns: true if the given streamId indicates a
peer initiated unidirectional streama stream ID streamId)Returns |
| public boolean | Returns: true if the given streamId indicates a stream
that has a sending parta stream ID streamId)Returns |
| private void | newInitialLocalParameters(QuicStream
the stream on which parameters might be set stream, QuicTransportParameters the peer transport parameters params)Called to set initial peer parameters on a stream |
| private void | newInitialPeerParameters(QuicStream
the stream on which parameters might be set stream, QuicTransportParameters the peer transport parameters params)Called to set initial peer parameters on a stream |
| public void | newLocalTransportParameters(final QuicTransportParameters
the new local transport parameters params)Called when new local transport parameters are available |
| public void | newPeerTransportParameters(final QuicTransportParameters
the new local transport parameters params)Called when new peer transport parameters are available |
| public long | |
| public void | notifyTerminalState(long
the id of the stream streamId, QuicStream.the terminal state stateCalled when the receiving part or the sending part of a stream reaches a terminal state. |
| public long | Returns: the next unallocated stream ID that would be expected for a stream of the given typeThe stream type, a number in [0..3] streamType)Returns the next unallocated stream ID that would be expected for a stream of the given type. |
| public void | peerStreamsBlocked(final StreamsBlockedFrame
the STREAMS_BLOCKED frame that was received from the peer frame)Runs the APPLICATION space packet transmitter, if necessary, to potentially trigger
sending a MAX_STREAMS frame to the peer, upon receiving the STREAMS_BLOCKED |
| public void | processIncomingFrame(QuicStream
the stream for which the StreamFrame was received stream, StreamFrame the stream frame frame)Called when a StreamFrame is received. |
| public void | processIncomingFrame(QuicStream
the stream for which the ResetStreamFrame was received stream, ResetStreamFrame the reset stream frame frame)Called when a ResetStreamFrame is received. |
| public void | |
| public long | Returns: the total number of stream data bytes packaged in the created frames. This will not exceed the givenmaxConnectionData.the encoder, long QuicPacketEncoder, used if anything is quic version
dependent.the cumulated maximum size of all the frames maxSize, long the maximum number of stream data bytes that can
be packaged to respect connection flow control
constraints maxConnectionData, List<QuicFrame> a list of frames in which to add the packaged data frames)Package available data in |
| public Stream | Returns: a stream of all currently activeQuicStream in the connectionReturns a stream of all currently active |
| pack-priv QuicReceiverStreamImpl | Returns: the receiver part implementation of the given stream, ornulla receiving or bidirectional stream stream)Returns the receiver part implementation of the given stream, or |
| private void | |
| public boolean | Returns: true if the listener was found and removed, false otherwiseRemoves a listener previously added with |
| private void | removeStream(long
the stream id streamId, QuicStream the stream instance stream)Removes a stream from the stream map after its state has been switched to DATA_RECVD or RESET_RECVD |
| public void | requestResetStream(long
the id of the stream that should be reset streamId, long the application error code errorCode)Mark the stream whose ID is encoded in the given
|
| public void | requestSendMaxStreamData(MaxStreamDataFrame
the MAX_STREAM_DATA frame to send maxStreamDataFrame)Mark the stream whose ID is encoded in the given
|
| public void | scheduleStopSendingFrame(StopSendingFrame
the STOP_SENDING frame to send stopSendingFrame)Mark the stream whose ID is encoded in the given
|
| pack-priv QuicSenderStreamImpl | Returns: the sender part implementation of the given stream, ornulla sending or bidirectional stream stream)Returns the sender part implementation of the given stream, or |
| public void | setMaxStreamData(QuicSenderStream
the stream stream, long the max data that the peer is willing to accept on this stream maxStreamData)Set max stream data for a stream. |
| private boolean | |
| public void | stopSendingReceived(QuicSenderStream
the stream for which stop sending was requested
by the peer stream, long the error code errorCode)This method is called when a |
| public void | streamDataSentAcknowledged(StreamFrame
the final STREAM frame streamFrame)Called when the final STREAM frame is acknowledged by the peer. |
| public void | streamResetAcknowledged(ResetStreamFrame
the RESET_STREAM frame reset)Called when the RESET_STREAM frame is acknowledged by the peer. |
| public void | terminate(final TerminationCause
the termination cause terminationCause)Called when the connection is closed by the higher level protocol |
| pack-priv final void | trackBlockedStream(final long
the stream id streamId)Tracks a stream, belonging to this connection, as being blocked from sending data due to flow control limit. |
| private static boolean | |
| public boolean | |
| pack-priv final void | untrackBlockedStream(final long
the stream id streamId)Stops tracking a stream, belonging to this connection, that may have been previously tracked as being blocked due to flow control limit. |