Show / Hide Table of Contents

Class PoolingBufferWriter<T>

Represents memory writer that uses pooled memory.

Inheritance
object
Disposable
BufferWriter<T>
PoolingBufferWriter<T>
Implements
IBufferWriter<T>
ISupplier<ReadOnlyMemory<T>>
IFunctional<Func<ReadOnlyMemory<T>>>
IReadOnlyList<T>
IReadOnlyCollection<T>
IEnumerable<T>
IEnumerable
IGrowableBuffer<T>
IReadOnlySpanConsumer<T>
ISupplier<ReadOnlyMemory<T>, CancellationToken, ValueTask>
IFunctional<Func<ReadOnlyMemory<T>, CancellationToken, ValueTask>>
IResettable
IMemoryOwner<T>
IDisposable
Inherited Members
BufferWriter<T>.MeasurementTags
BufferWriter<T>.WrittenCount
BufferWriter<T>.Add(T)
BufferWriter<T>.AddAll(ICollection<T>)
BufferWriter<T>.this[int]
BufferWriter<T>.FreeCapacity
BufferWriter<T>.Advance(int)
BufferWriter<T>.Rewind(int)
BufferWriter<T>.GetEnumerator()
BufferWriter<T>.ToString()
Disposable.Dispose()
Disposable.Dispose(IEnumerable<IDisposable>)
Disposable.DisposeAsync(IEnumerable<IAsyncDisposable>)
Disposable.Dispose<T>(ReadOnlySpan<T>)
Disposable.DisposeAsync(params IAsyncDisposable[])
object.Equals(object)
object.Equals(object, object)
object.GetHashCode()
object.GetType()
object.ReferenceEquals(object, object)
Namespace: DotNext.Buffers
Assembly: DotNext.dll
Syntax
public sealed class PoolingBufferWriter<T> : BufferWriter<T>, IBufferWriter<T>, ISupplier<ReadOnlyMemory<T>>, IFunctional<Func<ReadOnlyMemory<T>>>, IReadOnlyList<T>, IReadOnlyCollection<T>, IEnumerable<T>, IEnumerable, IGrowableBuffer<T>, IReadOnlySpanConsumer<T>, ISupplier<ReadOnlyMemory<T>, CancellationToken, ValueTask>, IFunctional<Func<ReadOnlyMemory<T>, CancellationToken, ValueTask>>, IResettable, IMemoryOwner<T>, IDisposable
Type Parameters
Name Description
T

The data type that can be written.

Remarks

Initializes a new writer with the default initial capacity.

Constructors

| Edit this page View Source

PoolingBufferWriter(MemoryAllocator<T>?)

Represents memory writer that uses pooled memory.

Declaration
public PoolingBufferWriter(MemoryAllocator<T>? allocator = null)
Parameters
Type Name Description
MemoryAllocator<T> allocator

The allocator of internal buffer.

Remarks

Initializes a new writer with the default initial capacity.

Properties

| Edit this page View Source

Capacity

Gets or sets the total amount of space within the underlying memory.

Declaration
public override int Capacity { get; init; }
Property Value
Type Description
int
Overrides
BufferWriter<T>.Capacity
Exceptions
Type Condition
ArgumentOutOfRangeException

value is less than zero.

| Edit this page View Source

WrittenMemory

Gets the data written to the underlying buffer so far.

Declaration
public override ReadOnlyMemory<T> WrittenMemory { get; }
Property Value
Type Description
ReadOnlyMemory<T>
Overrides
BufferWriter<T>.WrittenMemory
Exceptions
Type Condition
ObjectDisposedException

This writer has been disposed.

Methods

| Edit this page View Source

Clear(bool)

Clears the data written to the underlying memory.

Declaration
public override void Clear(bool reuseBuffer = false)
Parameters
Type Name Description
bool reuseBuffer

true to reuse the internal buffer; false to destroy the internal buffer.

Overrides
BufferWriter<T>.Clear(bool)
Exceptions
Type Condition
ObjectDisposedException

This writer has been disposed.

| Edit this page View Source

DetachBuffer()

Transfers ownership of the written memory from this writer to the caller.

Declaration
public override MemoryOwner<T> DetachBuffer()
Returns
Type Description
MemoryOwner<T>

The object representing all written content.

Overrides
BufferWriter<T>.DetachBuffer()
Remarks

The caller is responsible for the lifetime of the returned buffer. The current state of this writer will be reset.

Exceptions
Type Condition
ObjectDisposedException

This writer has been disposed.

| Edit this page View Source

Dispose(bool)

Releases managed and unmanaged resources associated with this object.

Declaration
protected override void Dispose(bool disposing)
Parameters
Type Name Description
bool disposing

true if called from Dispose(); false if called from finalizer ~Disposable().

Overrides
BufferWriter<T>.Dispose(bool)
| Edit this page View Source

GetMemory(int)

Returns the memory to write to that is at least the requested size.

Declaration
public override Memory<T> GetMemory(int sizeHint = 0)
Parameters
Type Name Description
int sizeHint

The minimum length of the returned memory.

Returns
Type Description
Memory<T>

The memory block of at least the size sizeHint.

Overrides
BufferWriter<T>.GetMemory(int)
Exceptions
Type Condition
OutOfMemoryException

The requested buffer size is not available.

ObjectDisposedException

This writer has been disposed.

| Edit this page View Source

GetSpan(int)

Returns the memory to write to that is at least the requested size.

Declaration
public override Span<T> GetSpan(int sizeHint = 0)
Parameters
Type Name Description
int sizeHint

The minimum length of the returned memory.

Returns
Type Description
Span<T>

The memory block of at least the size sizeHint.

Overrides
BufferWriter<T>.GetSpan(int)
Exceptions
Type Condition
OutOfMemoryException

The requested buffer size is not available.

ObjectDisposedException

This writer has been disposed.

Implements

IBufferWriter<T>
ISupplier<TResult>
IFunctional<TDelegate>
IReadOnlyList<T>
IReadOnlyCollection<T>
IEnumerable<T>
IEnumerable
IGrowableBuffer<T>
IReadOnlySpanConsumer<T>
ISupplier<T1, T2, TResult>
IFunctional<TDelegate>
IResettable
IMemoryOwner<T>
IDisposable

Extension Methods

BasicExtensions.As<T>(T)
BasicExtensions.GetUserData<T>(T)
BasicExtensions.IsBetween<T, TLowerBound, TUpperBound>(T, TLowerBound, TUpperBound)
BasicExtensions.IsOneOf<T>(T, ReadOnlySpan<T>)
ExpressionBuilder.Const<T>(T)
AsyncLockAcquisition.AcquireLockAsync<T>(T, CancellationToken)
AsyncLockAcquisition.AcquireLockAsync<T>(T, TimeSpan, CancellationToken)
AsyncLockAcquisition.AcquireReadLockAsync<T>(T, CancellationToken)
AsyncLockAcquisition.AcquireReadLockAsync<T>(T, TimeSpan, CancellationToken)
AsyncLockAcquisition.AcquireWriteLockAsync<T>(T, bool, CancellationToken)
AsyncLockAcquisition.AcquireWriteLockAsync<T>(T, bool, TimeSpan, CancellationToken)
AsyncLockAcquisition.AcquireWriteLockAsync<T>(T, CancellationToken)
AsyncLockAcquisition.AcquireWriteLockAsync<T>(T, TimeSpan, CancellationToken)
LockAcquisition.AcquireReadLock<T>(T)
LockAcquisition.AcquireReadLock<T>(T, TimeSpan)
LockAcquisition.AcquireUpgradeableReadLock<T>(T)
LockAcquisition.AcquireUpgradeableReadLock<T>(T, TimeSpan)
LockAcquisition.AcquireWriteLock<T>(T)
LockAcquisition.AcquireWriteLock<T>(T, TimeSpan)
BufferWriter.Write<T>(IBufferWriter<T>, in ReadOnlySequence<T>)
Collection.Append<T>(IEnumerable<T>, params T[])
Collection.Copy<T>(IEnumerable<T>, int, MemoryAllocator<T>?)
Collection.ElementAt<T>(IEnumerable<T>, int, out T)
Collection.FirstOrNone<T>(IEnumerable<T>)
Collection.ForEachAsync<T>(IEnumerable<T>, Func<T, CancellationToken, ValueTask>, CancellationToken)
Collection.ForEach<T>(IEnumerable<T>, Action<T>)
Collection.LastOrNone<T>(IEnumerable<T>)
Collection.Prepend<T>(IEnumerable<T>, params T[])
Collection.SequenceHashCode<T>(IEnumerable<T>, bool)
Collection.ToAsyncEnumerable<T>(IEnumerable<T>)
Collection.ToString<T>(IEnumerable<T>, string, string)
Enumerator.GetAsyncEnumerator<T>(IEnumerable<T>, CancellationToken)
Collection.Convert<TInput, TOutput>(IReadOnlyCollection<TInput>, Converter<TInput, TOutput>)
List.Convert<TInput, TOutput>(IReadOnlyList<TInput>, Converter<TInput, TOutput>)
List.IndexerGetter<T>(IReadOnlyList<T>)
  • Edit this page
  • View Source
☀
☾
In this article
Back to top
Supported by the .NET Foundation
☀
☾