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

◆ WriteSpan()

void System.IO.Strategies.BufferedFileStreamStrategy.WriteSpan ( ReadOnlySpan< byte > source,
ArraySegment< byte > arraySegment )
inlineprivate

Definition at line 717 of file BufferedFileStreamStrategy.cs.

718 {
719 if (_writePos == 0)
720 {
723 }
724 if (_writePos > 0)
725 {
726 int num = _bufferSize - _writePos;
727 if (num > 0)
728 {
729 if (num >= source.Length)
730 {
731 source.CopyTo(_buffer.AsSpan(_writePos));
732 _writePos += source.Length;
733 return;
734 }
735 source.Slice(0, num).CopyTo(_buffer.AsSpan(_writePos));
736 _writePos += num;
737 source = source.Slice(num);
738 if (arraySegment.Array != null)
739 {
740 arraySegment = arraySegment.Slice(num);
741 }
742 }
743 FlushWrite();
744 }
745 if (source.Length >= _bufferSize)
746 {
747 if (arraySegment.Array != null)
748 {
749 _strategy.Write(arraySegment.Array, arraySegment.Offset, arraySegment.Count);
750 }
751 else
752 {
754 }
755 }
756 else if (source.Length != 0)
757 {
759 source.CopyTo(_buffer.AsSpan(_writePos));
760 _writePos = source.Length;
761 }
762 }
void Write(byte[] buffer, int offset, int count)
ArraySegment< T > Slice(int index)

References System.IO.Strategies.BufferedFileStreamStrategy._buffer, System.IO.Strategies.BufferedFileStreamStrategy._bufferSize, System.IO.Strategies.BufferedFileStreamStrategy._strategy, System.IO.Strategies.BufferedFileStreamStrategy._writePos, System.ArraySegment< T >.Array, System.IO.Strategies.BufferedFileStreamStrategy.ClearReadBufferBeforeWrite(), System.ArraySegment< T >.Count, System.IO.Strategies.BufferedFileStreamStrategy.EnsureBufferAllocated(), System.IO.Strategies.BufferedFileStreamStrategy.EnsureCanWrite(), System.IO.Strategies.BufferedFileStreamStrategy.FlushWrite(), System.ArraySegment< T >.Offset, System.ArraySegment< T >.Slice(), System.source, and System.IO.Stream.Write().

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