| Modifier and Type | Class and Description |
|---|---|
| private class | Http3Connection.
A class used to dispatch peer initiated unidirectional streams according to their HTTP/3 stream type. |
| pack-priv class |
| Modifier and Type | Field and Description |
|---|---|
| private volatile boolean | |
| private final Http3ClientImpl | |
| private static final int | |
| private static final VarHandle | |
| pack-priv volatile int | |
| private final HttpQuicConnection | |
| private final String | |
| private final FramesDecoder | |
| private final UniStreamPair | |
| private final String | |
| private final Logger | |
| private final ConcurrentMap | |
| private final ConcurrentMap | |
| private volatile boolean | |
| private final H3FrameOrderVerifier | |
| private static final int | |
| private static final int | |
| private volatile Http3Connection. | |
| private final Duration | |
| private final AtomicLong | |
| private final ReentrantLock | |
| private final AtomicLong | |
| private final AtomicLong | |
| private volatile ConnectionSettings | |
| private volatile ConnectionSettings | |
| private final MinimalFuture | |
| private volatile boolean | |
| private final Http3PushManager | |
| private final Decoder | |
| private final UniStreamPair | |
| private final Encoder | |
| private final UniStreamPair | |
| private final QuicConnection | |
| private final Predicate | |
| private final AtomicLong | |
| private volatile boolean | |
| private volatile boolean |
| Access | Constructor and Description |
|---|---|
| pack-priv | Http3Connection(HttpRequestImpl
the request which triggered the creation of the connection request, Http3ClientImpl the Http3Client instance this connection belongs to client, HttpQuicConnection the connection)HttpQuicConnection that was establishedCreates a new HTTP/3 connection over a given |
| Modifier and Type | Method and Description |
|---|---|
| pack-priv boolean | Returns: true if the pushId can be processeda push stream (may be null if not yet materialized) pushStream, long a pushId, must be > 0 pushId)This method is called by the |
| pack-priv boolean | |
| pack-priv void | |
| private void | cancelIdleShutdownEvent()
Cancels any event that might have been scheduled to shutdown this connection. |
| private IOException | |
| pack-priv IOException | Returns: anIOException that can be used to complete a completable
future if the maximum pushId is exceeded, null
otherwisethe pushId pushId)Checks whether the given pushId exceed the maximum pushId allowed to the peer, and if so, closes the connection. |
| private IOException | Returns: anIOException that can be used to complete a completable
future if the maximum pushId is exceeded, null
otherwisethe pushId pushId, long max)Checks whether the given pushId exceed the maximum pushId allowed to the peer, and if so, closes the connection. |
| pack-priv void | |
| private static CompletableFuture | |
| public void | close()
Implements java. Closes this resource, relinquishing any underlying resources. |
| pack-priv void | |
| pack-priv void | |
| pack-priv void | |
| pack-priv HttpQuicConnection | |
| pack-priv void | |
| pack-priv void | |
| pack-priv void | controlStreamFailed(final QuicStream stream, final UniStreamPair uniStreamPair, final Throwable throwable)
|
| pack-priv static CompletableFuture | Returns: a completable future that will be completed with a new HTTP/3 connection, ornull if no usable HTTP/3 endpoint
was found, or completed exceptionally if an error occurredthe first request that will go over this connection request, Http3ClientImpl the HTTP/3 client h3client, Exchange<?> the exchange for which this connection is created exchange)Asynchronously create an instance of an HTTP/3 connection, if the server has a known HTTP/3 endpoint. |
| pack-priv QueuingStreamPair | |
| pack-priv QueuingStreamPair | |
| private <T> Http3ExchangeImpl | |
| pack-priv <U> CompletableFuture | |
| pack-priv String | Returns: a debug tagDebug tag used to create the debug logger for this HTTP/3 connection instance. |
| pack-priv void | |
| pack-priv String | |
| private void | |
| protected void | dispatchingFailed(QuicReceiverStream uni, Throwable
the reason of the failure reason)Called if the dispatch failed. |
| private <T> T | |
| private <T> T | |
| private boolean | |
| public long | Returns: the minimum pushId that can be accepted from the peerReturns the minimum pushId that can be accepted from the peer. |
| pack-priv Optional | Returns: the settings, sent by the peer, for this connection. If none is present, due to the SETTINGS frame not yet arriving from the peer, this method returnsOptional#empty()Returns the settings, sent by the peer, for this connection. |
| private void | |
| private void | |
| pack-priv boolean | Returns: true if the final stream has been set.Whether the final stream (last stream allowed on a connection), has been set. |
| private boolean | |
| pack-priv boolean | |
| private boolean | isQUICTrafficGenerationRequired()
This callback method is invoked by the QUIC layer when it notices that this connection hasn't seen any traffic for certain period of time. |
| pack-priv String | |
| pack-priv void | |
| private void | |
| private boolean | |
| private boolean | |
| private boolean | |
| private boolean | |
| pack-priv HttpResponse. | Returns: a new PushId for the given pushIdthe pushId pushId)Returns a new PushId for the given pushId. |
| pack-priv void | noPushHandlerFor(long
the pushId pushId)Called if a PushPromiseFrame is received by an exchange that doesn't have any
|
| private void | onDecoderStreamsFailed(final QuicStream stream, final UniStreamPair uniStreamPair, final Throwable throwable)
|
| private void | onEncoderStreamsFailed(final QuicStream stream, final UniStreamPair uniStreamPair, final Throwable throwable)
|
| pack-priv void | onExchangeClose(Http3ExchangeImpl<?> exch, final long
The request stream id streamId)Called by the |
| private boolean | Returns: always returns true (seeQuicConnection#addRemoteStreamListener(Predicate)the new stream stream)This method is called when the peer opens a new stream. |
| pack-priv boolean | Returns: true if the exchange should take care of creating the HttpResponse body, false otherwiseThe HTTP/3 exchange that received the frame exchange, long The pushId contained in the frame pushId, HttpHeaders The push promise headers contained in the frame promiseHeaders)Called when a PushPromiseFrame has been decoded. |
| pack-priv void | onPushPromiseStream(QuicReceiverStream
the new push promise stream pushStream, long the pushId pushId)Called when a new push promise stream is created by the peer, and the pushId has been read. |
| pack-priv <T> void | |
| pack-priv <T> void | |
| private void | onPushStreamCreated(QuicReceiverStream
the new push promise stream pushStream, long or -1 if the pushId is not available yet pushId)Called when a new push promise stream is created by the peer. |
| protected boolean | Returns: always returns false (QuicConnection#addRemoteStreamListener(Predicate)the new bidirectional stream opened by the
peer. bidi)Called when the peer opens a bidirectional stream. |
| protected boolean | Returns: always returns true (QuicConnection#addRemoteStreamListener(Predicate)the unidirectional stream opened by the peer uni)This method is called when the peer opens a unidirectional stream. |
| pack-priv CompletableFuture | |
| private void | processPeerControlBytes(final ByteBuffer
the bytes received buffer)This method is called to process bytes received on the peer control stream. |
| pack-priv void | |
| pack-priv void | pushCancelled(long
the pushId to cancel pushId, Throwable the cause (may be cause)null).Called when a pushId needs to be cancelled. |
| pack-priv Decoder | |
| pack-priv Encoder | |
| public String | |
| private <T> Http3ExchangeImpl | |
| private boolean | |
| pack-priv void | sendCancelPush(long
the pushId to cancel pushId, Throwable the reason for cancelling, may be cause)nullSends a CANCEL_PUSH frame for the given |
| private void | |
| private QuicStreamWriter | Returns: theQuicStreamWriter passed as parameterthe control stream writer writer)Schedules sending of max push id that this (client) connection allows. |
| private QuicStreamWriter | Returns: a completable future that will be completed with theQuicStreamWriter allowing to write to the local control
streamSchedules sending of max push id that this (client) connection allows. |
| pack-priv void | sendMaxPushId(long
the new maxPushId maxPushId)Send a MAX_PUSH_ID frame on the control stream with the given |
| pack-priv QuicStreamWriter | Returns: a completable future that will be completed with theQuicStreamWriter allowing to write to the local control
streamSchedules sending of client settings. |
| pack-priv void | |
| pack-priv void | |
| pack-priv void | setPooled(final boolean present)
Mark this connection as being present or absent from the connection pool. |
| private static boolean | |
| private void | |
| public String | |
| pack-priv boolean | Returns: true if the connection has been successfully reserved and isisOpen(). false
otherwise; in which case the connection must not be handed out from the pool.Attempts to notify the idle connection management that this connection should be considered "in use". |
| private void | |
| pack-priv CompletableFuture | Returns: a completable future that will be completed when a pushId has been accepted by the exchange in charge of creating the response bodythe pushId pushId)Returns a completable future that will be completed when a pushId has been accepted by the exchange in charge of creating the response body. |