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

◆ PurgeBuffersAsync()

async ValueTask System.IO.Compression.DeflateStream.PurgeBuffersAsync ( )
inlineprivate

Definition at line 701 of file DeflateStream.cs.

702 {
703 if (_stream == null || _mode != CompressionMode.Compress)
704 {
705 return;
706 }
707 if (_wroteBytes)
708 {
709 await WriteDeflaterOutputAsync(default(CancellationToken)).ConfigureAwait(continueOnCapturedContext: false);
710 bool finished;
711 do
712 {
713 finished = _deflater.Finish(_buffer, out var bytesRead);
714 if (bytesRead > 0)
715 {
716 await _stream.WriteAsync(new ReadOnlyMemory<byte>(_buffer, 0, bytesRead)).ConfigureAwait(continueOnCapturedContext: false);
717 }
718 }
719 while (!finished);
720 }
721 else
722 {
723 int bytesRead2;
724 while (!_deflater.Finish(_buffer, out bytesRead2))
725 {
726 }
727 }
728 }
async ValueTask WriteDeflaterOutputAsync(CancellationToken cancellationToken)
bool Finish(byte[] outputBuffer, out int bytesRead)
Definition Deflater.cs:152
Task WriteAsync(byte[] buffer, int offset, int count)
Definition Stream.cs:914
new ConfiguredTaskAwaitable< TResult > ConfigureAwait(bool continueOnCapturedContext)
Definition Task.cs:226
ConfiguredValueTaskAwaitable ConfigureAwait(bool continueOnCapturedContext)
Definition ValueTask.cs:312

References System.IO.Compression.DeflateStream._buffer, System.IO.Compression.DeflateStream._deflater, System.IO.Compression.DeflateStream._mode, System.IO.Compression.DeflateStream._stream, System.IO.Compression.DeflateStream._wroteBytes, System.Threading.Tasks.ValueTask< TResult >.ConfigureAwait(), System.IO.Compression.Deflater.Finish(), System.IO.Stream.WriteAsync(), and System.IO.Compression.DeflateStream.WriteDeflaterOutputAsync().

Referenced by System.IO.Compression.DeflateStream.DisposeAsync().