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

◆ TryReadFromBuffer()

bool int bytesRead System.IO.StreamBuffer.TryReadFromBuffer ( Span< byte > buffer)
inlineprivate

Definition at line 193 of file StreamBuffer.cs.

194 {
195 lock (SyncObject)
196 {
197 if (_readAborted)
198 {
199 return (wait: false, bytesRead: 0);
200 }
201 if (!_buffer.IsEmpty)
202 {
203 int num = Math.Min(buffer.Length, _buffer.ActiveMemory.Length);
204 _buffer.ActiveMemory.Slice(0, num).CopyTo(buffer);
205 _buffer.Discard(num);
207 return (wait: false, bytesRead: num);
208 }
209 if (_writeEnded)
210 {
211 return (wait: false, bytesRead: 0);
212 }
214 return (wait: true, bytesRead: 0);
215 }
216 }
MultiArrayBuffer _buffer
readonly ResettableValueTaskSource _writeTaskSource
readonly ResettableValueTaskSource _readTaskSource
System.Net.MultiMemory ActiveMemory
void Discard(int byteCount)

References System.IO.StreamBuffer._buffer, System.IO.StreamBuffer._readAborted, System.IO.StreamBuffer._readTaskSource, System.IO.StreamBuffer._writeEnded, System.IO.StreamBuffer._writeTaskSource, System.Net.MultiArrayBuffer.ActiveMemory, System.buffer, System.Net.MultiArrayBuffer.Discard(), System.Net.MultiArrayBuffer.IsEmpty, System.Math.Min(), System.IO.StreamBuffer.ResettableValueTaskSource.Reset(), System.IO.StreamBuffer.ResettableValueTaskSource.SignalWaiter(), System.IO.StreamBuffer.SyncObject, and System.IO.StreamBuffer.wait.

Referenced by System.IO.StreamBuffer.Read(), and System.IO.StreamBuffer.ReadAsync().