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

◆ WriteSpan()

void System.IO.Strategies.Net5CompatFileStreamStrategy.WriteSpan ( ReadOnlySpan< byte > source)
inlineprivate

Definition at line 890 of file Net5CompatFileStreamStrategy.cs.

891 {
892 if (_writePos == 0)
893 {
894 if (!CanWrite)
895 {
896 ThrowHelper.ThrowNotSupportedException_UnwritableStream();
897 }
898 if (_readPos < _readLength)
899 {
901 }
902 _readPos = 0;
903 _readLength = 0;
904 }
905 if (_writePos > 0)
906 {
907 int num = _bufferLength - _writePos;
908 if (num > 0)
909 {
910 if (num >= source.Length)
911 {
912 source.CopyTo(GetBuffer().AsSpan(_writePos));
913 _writePos += source.Length;
914 return;
915 }
916 source.Slice(0, num).CopyTo(GetBuffer().AsSpan(_writePos));
917 _writePos += num;
918 source = source.Slice(num);
919 }
920 WriteCore(new ReadOnlySpan<byte>(GetBuffer(), 0, _writePos));
921 _writePos = 0;
922 }
923 if (source.Length >= _bufferLength)
924 {
926 }
927 else if (source.Length != 0)
928 {
929 source.CopyTo(GetBuffer().AsSpan(_writePos));
930 _writePos = source.Length;
931 }
932 }

References System.IO.Strategies.Net5CompatFileStreamStrategy._bufferLength, System.IO.Strategies.Net5CompatFileStreamStrategy._readLength, System.IO.Strategies.Net5CompatFileStreamStrategy._readPos, System.IO.Strategies.Net5CompatFileStreamStrategy._writePos, System.IO.Strategies.Net5CompatFileStreamStrategy.CanWrite, System.IO.Strategies.Net5CompatFileStreamStrategy.FlushReadBuffer(), System.IO.Strategies.Net5CompatFileStreamStrategy.GetBuffer(), System.source, System.ThrowHelper.ThrowNotSupportedException_UnwritableStream(), and System.IO.Strategies.Net5CompatFileStreamStrategy.WriteCore().

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