3 instantiations of BufferSegment
System.IO.Pipelines (3)
System\IO\Pipelines\Pipe.cs (1)
357return new BufferSegment();
System\IO\Pipelines\StreamPipeReader.cs (1)
548return new BufferSegment();
System\IO\Pipelines\StreamPipeWriter.cs (1)
191return new BufferSegment();
75 references to BufferSegment
System.IO.Pipelines (75)
System\IO\Pipelines\BufferSegment.cs (6)
14private BufferSegment? _next; 40public BufferSegment? NextSegment 107public void SetNext(BufferSegment segment) 125internal static long GetLength(BufferSegment startSegment, int startIndex, BufferSegment endSegment, int endIndex) 131internal static long GetLength(long startPosition, BufferSegment endSegment, int endIndex)
System\IO\Pipelines\BufferSegmentStack.cs (7)
25public bool TryPop([NotNullWhen(true)] out BufferSegment? result) 43public void Push(BufferSegment item) 61private void PushWithResize(BufferSegment item) 82private readonly BufferSegment _value; 83private SegmentAsValueType(BufferSegment value) => _value = value; 84public static implicit operator SegmentAsValueType(BufferSegment s) => new SegmentAsValueType(s); 85public static implicit operator BufferSegment(SegmentAsValueType s) => s._value;
System\IO\Pipelines\Pipe.cs (28)
31private readonly SingleProducerSingleConsumerQueue<BufferSegment> _bufferSegmentPool = new SingleProducerSingleConsumerQueue<BufferSegment>(); 76private BufferSegment? _readHead; 82private BufferSegment? _readTail; 87private BufferSegment? _writingHead; 213BufferSegment newSegment = GetOrCreateSegment(); 239BufferSegment newSegment = GetOrCreateSegment(); 255private BufferSegment AllocateSegment(int sizeHint) 257BufferSegment newSegment = GetOrCreateSegment(); 264private void RentMemory(BufferSegment segment, int sizeHint) 316private void AttachMemory(BufferSegment segment, ref object? prerented, int sizeHint) 350private BufferSegment GetOrCreateSegment() 352if (_bufferSegmentPool.TryDequeue(out BufferSegment? segment)) 360private void ReturnSegment(BufferSegment segment) 566AdvanceReader((BufferSegment?)consumed.GetObject(), consumed.GetInteger(), (BufferSegment?)examined.GetObject(), examined.GetInteger()); 569private void AdvanceReader(BufferSegment? consumedSegment, int consumedIndex, BufferSegment? examinedSegment, int examinedIndex) 572if (consumedSegment != null && examinedSegment != null && BufferSegment.GetLength(consumedSegment, consumedIndex, examinedSegment, examinedIndex) < 0) 577BufferSegment? returnStart = null; 578BufferSegment? returnEnd = null; 596long examinedBytes = BufferSegment.GetLength(_lastExaminedIndex, examinedSegment, examinedIndex); 629BufferSegment? nextBlock = returnEnd!.NextSegment; 690BufferSegment? next = returnStart.NextSegment; 996BufferSegment? segment = _readHead ?? _readTail; 999BufferSegment returnSegment = segment; 1079BufferSegment? head = _readHead; 1231BufferSegment newSegment = AllocateSegment(0);
System\IO\Pipelines\StreamPipeReader.cs (21)
20private BufferSegment? _readHead; 23private BufferSegment? _readTail; 89AdvanceTo((BufferSegment?)consumed.GetObject(), consumed.GetInteger(), (BufferSegment?)examined.GetObject(), examined.GetInteger()); 92private void AdvanceTo(BufferSegment? consumedSegment, int consumedIndex, BufferSegment? examinedSegment, int examinedIndex) 104BufferSegment returnStart = _readHead; 105BufferSegment? returnEnd = consumedSegment; 107long consumedBytes = BufferSegment.GetLength(returnStart, _readIndex, consumedSegment, consumedIndex); 141BufferSegment? nextBlock = returnEnd.NextSegment; 155BufferSegment next = returnStart.NextSegment!; 190BufferSegment? segment = _readHead; 193BufferSegment returnSegment = segment; 330BufferSegment? segment = _readHead; 401BufferSegment? segment = _readHead; 502BufferSegment nextSegment = AllocateSegment(minimumSize); 509private BufferSegment AllocateSegment(int? minimumSize = null) 511BufferSegment nextSegment = CreateSegmentUnsynchronized(); 541private BufferSegment CreateSegmentUnsynchronized() 543if (_bufferSegmentPool.TryPop(out BufferSegment? segment)) 551private void ReturnSegmentUnsynchronized(BufferSegment segment)
System\IO\Pipelines\StreamPipeWriter.cs (13)
19private BufferSegment? _head; 20private BufferSegment? _tail; 124BufferSegment newSegment = AllocateSegment(sizeHint); 144BufferSegment newSegment = AllocateSegment(sizeHint); 152private BufferSegment AllocateSegment(int sizeHint) 155BufferSegment newSegment = CreateSegmentUnsynchronized(); 184private BufferSegment CreateSegmentUnsynchronized() 186if (_bufferSegmentPool.TryPop(out BufferSegment? segment)) 194private void ReturnSegmentUnsynchronized(BufferSegment segment) 317BufferSegment? segment = _head; 320BufferSegment returnSegment = segment; 389BufferSegment? segment = _head; 392BufferSegment returnSegment = segment;