Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ CopyToAsync()

async Task System.Net.Http.Http2Connection.Http2Stream.CopyToAsync ( HttpResponseMessage responseMessage,
Stream destination,
int bufferSize,
CancellationToken cancellationToken )
inline

Definition at line 1274 of file Http2Connection.cs.

1275 {
1276 byte[] buffer = ArrayPool<byte>.Shared.Rent(bufferSize);
1277 try
1278 {
1279 while (true)
1280 {
1281 var (flag, num) = TryReadFromBuffer(buffer);
1282 if (flag)
1283 {
1286 _ = tuple2.wait;
1287 num = tuple2.bytesRead;
1288 }
1289 if (num == 0)
1290 {
1291 break;
1292 }
1293 _windowManager.AdjustWindow(num, this);
1295 }
1297 }
1298 finally
1299 {
1300 ArrayPool<byte>.Shared.Return(buffer);
1301 }
1302 }
void MoveTrailersToResponseMessage(HttpResponseMessage responseMessage)
bool int bytesRead TryReadFromBuffer(Span< byte > buffer, bool partOfSyncRead=false)
ValueTask WaitForDataAsync(CancellationToken cancellationToken)
void AdjustWindow(int bytesConsumed, Http2Stream stream)
ConfiguredValueTaskAwaitable ConfigureAwait(bool continueOnCapturedContext)
Definition ValueTask.cs:312

References System.Net.Http.Http2Connection.Http2Stream._windowManager, System.Net.Http.Http2Connection.Http2StreamWindowManager.AdjustWindow(), System.buffer, System.cancellationToken, System.Threading.Tasks.ValueTask< TResult >.ConfigureAwait(), System.destination, System.Net.Http.Http2Connection.Http2Stream.MoveTrailersToResponseMessage(), System.Net.Http.Http2Connection.Http2Stream.TryReadFromBuffer(), System.Net.Http.Http2Connection.Http2Stream.wait, and System.Net.Http.Http2Connection.Http2Stream.WaitForDataAsync().