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

◆ ReadAsyncCore()

async ValueTask< int > System.IO.Compression.DeflateManagedStream.ReadAsyncCore ( ValueTask< int > readTask,
Memory< byte > buffer,
CancellationToken cancellationToken )
inlineprivate

Definition at line 194 of file DeflateManagedStream.cs.

195 {
196 try
197 {
198 int num;
199 while (true)
200 {
201 num = await readTask.ConfigureAwait(continueOnCapturedContext: false);
203 if (num <= 0)
204 {
205 return 0;
206 }
207 if (num > _buffer.Length)
208 {
209 throw new InvalidDataException(System.SR.GenericInvalidData);
210 }
211 cancellationToken.ThrowIfCancellationRequested();
212 _inflater.SetInput(_buffer, 0, num);
213 num = _inflater.Inflate(buffer.Span);
214 if (num != 0 || _inflater.Finished())
215 {
216 break;
217 }
218 readTask = _stream.ReadAsync(_buffer.AsMemory(), cancellationToken);
219 }
220 return num;
221 }
222 finally
223 {
225 }
226 }
void SetInput(byte[] inputBytes, int offset, int length)
Task< int > ReadAsync(byte[] buffer, int offset, int count)
Definition Stream.cs:762
static string GenericInvalidData
Definition SR.cs:20
Definition SR.cs:7
static int Decrement(ref int location)
ConfiguredValueTaskAwaitable ConfigureAwait(bool continueOnCapturedContext)
Definition ValueTask.cs:312

References System.IO.Compression.DeflateManagedStream._asyncOperations, System.IO.Compression.DeflateManagedStream._buffer, System.IO.Compression.DeflateManagedStream._inflater, System.IO.Compression.DeflateManagedStream._stream, System.buffer, System.cancellationToken, System.Threading.Tasks.ValueTask< TResult >.ConfigureAwait(), System.Threading.Interlocked.Decrement(), System.IO.Compression.DeflateManagedStream.EnsureNotDisposed(), System.IO.Compression.InflaterManaged.Finished(), System.SR.GenericInvalidData, System.IO.Compression.InflaterManaged.Inflate(), System.IO.Stream.ReadAsync(), and System.IO.Compression.InflaterManaged.SetInput().

Referenced by System.IO.Compression.DeflateManagedStream.ReadAsyncInternal().