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

◆ ReadAsyncMemory()

ValueTask< int > System.IO.Compression.DeflateStream.ReadAsyncMemory ( Memory< byte > buffer,
CancellationToken cancellationToken )
inlinepackage

Definition at line 559 of file DeflateStream.cs.

560 {
564 if (cancellationToken.IsCancellationRequested)
565 {
567 }
569 return Core(buffer, cancellationToken);
571 {
573 try
574 {
575 int bytesRead;
576 do
577 {
578 bytesRead = _inflater.Inflate(buffer.Span);
579 if (bytesRead != 0 || InflatorIsFinished)
580 {
581 break;
582 }
583 if (_inflater.NeedsInput())
584 {
585 int num = await _stream.ReadAsync(new Memory<byte>(_buffer, 0, _buffer.Length), cancellationToken).ConfigureAwait(continueOnCapturedContext: false);
586 if (num <= 0)
587 {
588 break;
589 }
590 if (num > _buffer.Length)
591 {
593 }
594 else
595 {
596 _inflater.SetInput(_buffer, 0, num);
597 }
598 }
599 }
600 while (!buffer.IsEmpty);
601 return bytesRead;
602 }
603 finally
604 {
606 }
607 }
608 }
void SetInput(byte[] inputBuffer, int startIndex, int count)
Definition Inflater.cs:154
unsafe bool Inflate(out byte b)
Definition Inflater.cs:41
Task< int > ReadAsync(byte[] buffer, int offset, int count)
Definition Stream.cs:762
new ConfiguredTaskAwaitable< TResult > ConfigureAwait(bool continueOnCapturedContext)
Definition Task.cs:226
static ValueTask FromCanceled(CancellationToken cancellationToken)
Definition ValueTask.cs:180

References System.IO.Compression.DeflateStream._buffer, System.IO.Compression.DeflateStream._inflater, System.IO.Compression.DeflateStream._stream, System.IO.Compression.DeflateStream.AsyncOperationCompleting(), System.IO.Compression.DeflateStream.AsyncOperationStarting(), System.buffer, System.cancellationToken, System.Threading.Tasks.Task< TResult >.ConfigureAwait(), System.IO.Compression.DeflateStream.EnsureBufferInitialized(), System.IO.Compression.DeflateStream.EnsureDecompressionMode(), System.IO.Compression.DeflateStream.EnsureNoActiveAsyncOperation(), System.IO.Compression.DeflateStream.EnsureNotDisposed(), System.Threading.Tasks.ValueTask< TResult >.FromCanceled(), System.IO.Compression.Inflater.Inflate(), System.IO.Compression.DeflateStream.InflatorIsFinished, System.IO.Compression.Inflater.NeedsInput(), System.IO.Stream.ReadAsync(), System.IO.Compression.Inflater.SetInput(), and System.IO.Compression.DeflateStream.ThrowGenericInvalidData().

Referenced by System.IO.Compression.DeflateStream.ReadAsync(), System.IO.Compression.DeflateStream.ReadAsync(), System.IO.Compression.GZipStream.ReadAsync(), and System.IO.Compression.ZLibStream.ReadAsync().