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

◆ ReadSpan()

int System.IO.Strategies.Net5CompatFileStreamStrategy.ReadSpan ( Span< byte > destination)
inlineprivate

Definition at line 743 of file Net5CompatFileStreamStrategy.cs.

744 {
745 bool flag = false;
746 int num = _readLength - _readPos;
747 if (num == 0)
748 {
749 if (!CanRead)
750 {
751 ThrowHelper.ThrowNotSupportedException_UnreadableStream();
752 }
753 if (_writePos > 0)
754 {
756 }
757 if (!CanSeek || destination.Length >= _bufferLength)
758 {
759 num = ReadNative(destination);
760 _readPos = 0;
761 _readLength = 0;
762 return num;
763 }
764 num = ReadNative(GetBuffer());
765 if (num == 0)
766 {
767 return 0;
768 }
769 flag = num < _bufferLength;
770 _readPos = 0;
771 _readLength = num;
772 }
773 if (num > destination.Length)
774 {
775 num = destination.Length;
776 }
777 new ReadOnlySpan<byte>(GetBuffer(), _readPos, num).CopyTo(destination);
778 _readPos += num;
779 if (_fileHandle.CanSeek && num < destination.Length && !flag)
780 {
781 int num2 = ReadNative(destination.Slice(num));
782 num += num2;
783 _readPos = 0;
784 _readLength = 0;
785 }
786 return num;
787 }

References System.IO.Strategies.Net5CompatFileStreamStrategy._bufferLength, System.IO.Strategies.Net5CompatFileStreamStrategy._fileHandle, System.IO.Strategies.Net5CompatFileStreamStrategy._readLength, System.IO.Strategies.Net5CompatFileStreamStrategy._readPos, System.IO.Strategies.Net5CompatFileStreamStrategy._writePos, System.IO.Strategies.Net5CompatFileStreamStrategy.CanRead, Microsoft.Win32.SafeHandles.SafeFileHandle.CanSeek, System.IO.Strategies.Net5CompatFileStreamStrategy.CanSeek, System.ReadOnlySpan< T >.CopyTo(), System.destination, System.IO.Strategies.Net5CompatFileStreamStrategy.FlushWriteBuffer(), System.IO.Strategies.Net5CompatFileStreamStrategy.GetBuffer(), System.IO.Strategies.Net5CompatFileStreamStrategy.ReadNative(), and System.ThrowHelper.ThrowNotSupportedException_UnreadableStream().

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