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

◆ ReadAsync() [3/3]

override ValueTask< int > System.IO.Compression.BrotliStream.ReadAsync ( Memory< byte > buffer,
CancellationToken cancellationToken = default(CancellationToken) )
inlinevirtual

Reimplemented from System.IO.Stream.

Definition at line 322 of file BrotliStream.cs.

323 {
324 if (_mode != 0)
325 {
327 }
330 if (cancellationToken.IsCancellationRequested)
331 {
333 }
334 return Core(buffer, cancellationToken);
336 {
338 try
339 {
340 int bytesWritten;
341 while (!TryDecompress(buffer.Span, out bytesWritten))
342 {
343 int num = await _stream.ReadAsync(_buffer.AsMemory(_bufferCount), cancellationToken).ConfigureAwait(continueOnCapturedContext: false);
344 if (num <= 0)
345 {
346 break;
347 }
348 _bufferCount += num;
349 if (_bufferCount > _buffer.Length)
350 {
352 }
353 }
354 return bytesWritten;
355 }
356 finally
357 {
359 }
360 }
361 }
readonly CompressionMode _mode
bool TryDecompress(Span< byte > destination, out int bytesWritten)
Task< int > ReadAsync(byte[] buffer, int offset, int count)
Definition Stream.cs:762
static string BrotliStream_Compress_UnsupportedOperation
Definition SR.cs:38
Definition SR.cs:7
new ConfiguredTaskAwaitable< TResult > ConfigureAwait(bool continueOnCapturedContext)
Definition Task.cs:226
static ValueTask FromCanceled(CancellationToken cancellationToken)
Definition ValueTask.cs:180

References System.IO.Compression.BrotliStream._buffer, System.IO.Compression.BrotliStream._bufferCount, System.IO.Compression.BrotliStream._mode, System.IO.Compression.BrotliStream._stream, System.IO.Compression.BrotliStream.AsyncOperationCompleting(), System.IO.Compression.BrotliStream.AsyncOperationStarting(), System.SR.BrotliStream_Compress_UnsupportedOperation, System.buffer, System.cancellationToken, System.Threading.Tasks.Task< TResult >.ConfigureAwait(), System.IO.Compression.BrotliStream.EnsureNoActiveAsyncOperation(), System.IO.Compression.BrotliStream.EnsureNotDisposed(), System.Threading.Tasks.ValueTask< TResult >.FromCanceled(), System.IO.Stream.ReadAsync(), System.IO.Compression.BrotliStream.ThrowInvalidStream(), and System.IO.Compression.BrotliStream.TryDecompress().