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

◆ ReadAsync()

async ValueTask< int > System.IO.StreamBuffer.ReadAsync ( Memory< byte > buffer,
CancellationToken cancellationToken = default(CancellationToken) )
inline

Definition at line 235 of file StreamBuffer.cs.

236 {
237 cancellationToken.ThrowIfCancellationRequested();
238 if (buffer.Length == 0)
239 {
240 return 0;
241 }
242 var (flag, result) = TryReadFromBuffer(buffer.Span);
243 if (flag)
244 {
245 await _readTaskSource.WaitAsync(cancellationToken).ConfigureAwait(continueOnCapturedContext: false);
246 (bool wait, int bytesRead) tuple2 = TryReadFromBuffer(buffer.Span);
247 _ = tuple2.wait;
248 result = tuple2.bytesRead;
249 }
250 return result;
251 }
ValueTask WaitAsync(CancellationToken cancellationToken)
bool int bytesRead TryReadFromBuffer(Span< byte > buffer)
readonly ResettableValueTaskSource _readTaskSource
ConfiguredValueTaskAwaitable ConfigureAwait(bool continueOnCapturedContext)
Definition ValueTask.cs:312

References System.IO.StreamBuffer._readTaskSource, System.buffer, System.cancellationToken, System.Threading.Tasks.ValueTask< TResult >.ConfigureAwait(), System.IO.StreamBuffer.TryReadFromBuffer(), System.IO.StreamBuffer.wait, and System.IO.StreamBuffer.ResettableValueTaskSource.WaitAsync().

Referenced by System.Net.Quic.Implementations.Mock.MockStream.ReadAsync().