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

◆ ReadSpan()

int System.IO.Strategies.BufferedFileStreamStrategy.ReadSpan ( Span< byte > destination,
ArraySegment< byte > arraySegment )
inlineprivate

Definition at line 530 of file BufferedFileStreamStrategy.cs.

531 {
532 bool flag = false;
533 int num = _readLen - _readPos;
534 if (num == 0)
535 {
537 if (_writePos > 0)
538 {
539 FlushWrite();
540 }
541 if (!_strategy.CanSeek || destination.Length >= _bufferSize)
542 {
543 num = ((arraySegment.Array != null) ? _strategy.Read(arraySegment.Array, arraySegment.Offset, arraySegment.Count) : _strategy.Read(destination));
544 _readPos = 0;
545 _readLen = 0;
546 return num;
547 }
550 if (num == 0)
551 {
552 return 0;
553 }
554 flag = num < _bufferSize;
555 _readPos = 0;
556 _readLen = num;
557 }
558 if (num > destination.Length)
559 {
560 num = destination.Length;
561 }
562 new ReadOnlySpan<byte>(_buffer, _readPos, num).CopyTo(destination);
563 _readPos += num;
564 if (_strategy.CanSeek && num < destination.Length && !flag)
565 {
566 int num2 = ((arraySegment.Array != null) ? _strategy.Read(arraySegment.Array, arraySegment.Offset + num, arraySegment.Count - num) : _strategy.Read(destination.Slice(num)));
567 num += num2;
568 _readPos = 0;
569 _readLen = 0;
570 }
571 return num;
572 }
int Read(byte[] buffer, int offset, int count)

References System.IO.Strategies.BufferedFileStreamStrategy._buffer, System.IO.Strategies.BufferedFileStreamStrategy._bufferSize, System.IO.Strategies.BufferedFileStreamStrategy._readLen, System.IO.Strategies.BufferedFileStreamStrategy._readPos, System.IO.Strategies.BufferedFileStreamStrategy._strategy, System.IO.Strategies.BufferedFileStreamStrategy._writePos, System.ArraySegment< T >.Array, System.IO.Stream.CanSeek, System.ReadOnlySpan< T >.CopyTo(), System.ArraySegment< T >.Count, System.destination, System.IO.Strategies.BufferedFileStreamStrategy.EnsureBufferAllocated(), System.IO.Strategies.BufferedFileStreamStrategy.EnsureCanRead(), System.IO.Strategies.BufferedFileStreamStrategy.FlushWrite(), System.ArraySegment< T >.Offset, and System.IO.Stream.Read().

Referenced by System.IO.Strategies.BufferedFileStreamStrategy.Read(), and System.IO.Strategies.BufferedFileStreamStrategy.Read().