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