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

◆ AsyncModeCopyToAsync()

async Task System.IO.Strategies.Net5CompatFileStreamStrategy.AsyncModeCopyToAsync ( Stream destination,
int bufferSize,
CancellationToken cancellationToken )
inlineprivate

Definition at line 1192 of file Net5CompatFileStreamStrategy.cs.

1193 {
1194 if (_writePos > 0)
1195 {
1196 await FlushWriteAsync(cancellationToken).ConfigureAwait(continueOnCapturedContext: false);
1197 }
1198 if (GetBuffer() != null)
1199 {
1200 int num = _readLength - _readPos;
1201 if (num > 0)
1202 {
1203 await destination.WriteAsync(new ReadOnlyMemory<byte>(GetBuffer(), _readPos, num), cancellationToken).ConfigureAwait(continueOnCapturedContext: false);
1204 _readPos = (_readLength = 0);
1205 }
1206 }
1207 bool canSeek = CanSeek;
1208 if (canSeek)
1209 {
1211 }
1212 try
1213 {
1214 await FileStreamHelpers.AsyncModeCopyToAsync(_fileHandle, canSeek, _filePosition, destination, bufferSize, cancellationToken).ConfigureAwait(continueOnCapturedContext: false);
1215 }
1216 finally
1217 {
1219 {
1221 }
1222 }
1223 }
Task FlushWriteAsync(CancellationToken cancellationToken)
long SeekCore(SafeFileHandle fileHandle, long offset, SeekOrigin origin, bool closeInvalidHandle=false)
new ConfiguredTaskAwaitable< TResult > ConfigureAwait(bool continueOnCapturedContext)
Definition Task.cs:226

References System.IO.Strategies.Net5CompatFileStreamStrategy._fileHandle, System.IO.Strategies.Net5CompatFileStreamStrategy._filePosition, System.IO.Strategies.Net5CompatFileStreamStrategy._readLength, System.IO.Strategies.Net5CompatFileStreamStrategy._readPos, System.IO.Strategies.Net5CompatFileStreamStrategy._writePos, System.IO.Strategies.FileStreamHelpers.AsyncModeCopyToAsync(), System.cancellationToken, System.IO.Strategies.Net5CompatFileStreamStrategy.CanSeek, System.Threading.Tasks.Task< TResult >.ConfigureAwait(), System.destination, System.IO.Strategies.Net5CompatFileStreamStrategy.FlushWriteAsync(), System.IO.Strategies.Net5CompatFileStreamStrategy.GetBuffer(), System.Runtime.InteropServices.SafeHandle.IsClosed, System.L, System.IO.Strategies.Net5CompatFileStreamStrategy.SeekCore(), and System.IO.Strategies.Net5CompatFileStreamStrategy.VerifyOSHandlePosition().

Referenced by System.IO.Strategies.Net5CompatFileStreamStrategy.CopyToAsync().