| File: Internal\Http3\IHttp3Stream.cs | Web Access |
| Project: src\aspnetcore\src\Servers\Kestrel\Core\src\Microsoft.AspNetCore.Server.Kestrel.Core.csproj (Microsoft.AspNetCore.Server.Kestrel.Core) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using System.Net.Http; using Microsoft.AspNetCore.Connections; namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http3; internal interface IHttp3Stream { /// <summary> /// The stream ID is set by QUIC. /// </summary> long StreamId { get; } /// <summary> /// Used to track the timeout in two situations: /// 1. Between when the stream was started by the client, and getting a header. /// Value is driven by <see cref="KestrelServerLimits.RequestHeadersTimeout"/>. /// 2. Between when the request delegate is complete and the transport draining. /// Value is driven by <see cref="KestrelServerLimits.MinResponseDataRate"/>. /// </summary> long StreamTimeoutTimestamp { get; set; } /// <summary> /// The stream is receiving the header frame. /// - Request streams = HEADERS frame. /// - Control streams = unidirectional stream header. /// </summary> bool IsReceivingHeader { get; } /// <summary> /// The stream is receiving a trailer HEADERS frame that spans multiple reads. /// </summary> bool IsReceivingTrailerHeaders { get; } /// <summary> /// The stream request delegate is complete and the transport is draining. /// </summary> bool IsDraining { get; } bool IsRequestStream { get; } bool EndStreamReceived { get; } bool IsAborted { get; } bool IsCompleted { get; } string TraceIdentifier { get; } void Abort(ConnectionAbortedException abortReason, Http3ErrorCode errorCode); }