Class PoolingArrayBufferWriter<T>
Represents memory writer that is backed by the array obtained from the pool.
Inherited Members
Namespace: DotNext.Buffers
Assembly: DotNext.dll
Syntax
public sealed class PoolingArrayBufferWriter<T> : BufferWriter<T>, IBufferWriter<T>, ISupplier<ReadOnlyMemory<T>>, IFunctional<Func<ReadOnlyMemory<T>>>, IReadOnlyList<T>, IReadOnlyCollection<T>, IGrowableBuffer<T>, IReadOnlySpanConsumer<T>, ISupplier<ReadOnlyMemory<T>, CancellationToken, ValueTask>, IFunctional<Func<ReadOnlyMemory<T>, CancellationToken, ValueTask>>, IDisposable, IResettable, ISupplier<ArraySegment<T>>, IFunctional<Func<ArraySegment<T>>>, IList<T>, ICollection<T>, IEnumerable<T>, IEnumerable
Type Parameters
Name | Description |
---|---|
T | The data type that can be written. |
Remarks
This class provides additional methods for access to array segments in contrast to PoolingBufferWriter<T>.
Constructors
| Edit this page View SourcePoolingArrayBufferWriter(ArrayPool<T>?)
Represents memory writer that is backed by the array obtained from the pool.
Declaration
public PoolingArrayBufferWriter(ArrayPool<T>? pool = null)
Parameters
Type | Name | Description |
---|---|---|
ArrayPool<T> | pool | The array pool. |
Remarks
This class provides additional methods for access to array segments in contrast to PoolingBufferWriter<T>.
Properties
| Edit this page View SourceCapacity
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
Exceptions
Type | Condition |
---|---|
ArgumentOutOfRangeException |
|
this[int]
Gets the element at the specified index.
Declaration
public ref T this[int index] { get; }
Parameters
Type | Name | Description |
---|---|---|
int | index | The index of the element to retrieve. |
Property Value
Type | Description |
---|---|
T | The element at the specified index. |
Exceptions
Type | Condition |
---|---|
ArgumentOutOfRangeException |
|
WrittenArray
Gets the data written to the underlying array so far.
Declaration
public ArraySegment<T> WrittenArray { get; }
Property Value
Type | Description |
---|---|
ArraySegment<T> |
Exceptions
Type | Condition |
---|---|
ObjectDisposedException | This writer has been disposed. |
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
Exceptions
Type | Condition |
---|---|
ObjectDisposedException | This writer has been disposed. |
Methods
| Edit this page View SourceAddAll(ICollection<T>)
Writes multiple elements.
Declaration
public override void AddAll(ICollection<T> items)
Parameters
Type | Name | Description |
---|---|---|
ICollection<T> | items | The collection of elements to be copied. |
Overrides
Exceptions
Type | Condition |
---|---|
ObjectDisposedException | This writer has been disposed. |
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
Exceptions
Type | Condition |
---|---|
ObjectDisposedException | This writer has been disposed. |
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
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. |
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
| Edit this page View SourceGetArray(int)
Returns the memory to write to that is at least the requested size.
Declaration
public ArraySegment<T> GetArray(int sizeHint = 0)
Parameters
Type | Name | Description |
---|---|---|
int | sizeHint | The minimum length of the returned memory. |
Returns
Type | Description |
---|---|
ArraySegment<T> | The memory block of at least the size |
Exceptions
Type | Condition |
---|---|
OutOfMemoryException | The requested buffer size is not available. |
ObjectDisposedException | This writer has been disposed. |
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 |
Overrides
Exceptions
Type | Condition |
---|---|
OutOfMemoryException | The requested buffer size is not available. |
ObjectDisposedException | This writer has been disposed. |
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 |
Overrides
Exceptions
Type | Condition |
---|---|
OutOfMemoryException | The requested buffer size is not available. |
ObjectDisposedException | This writer has been disposed. |
Insert(int, ReadOnlySpan<T>)
Inserts the elements into this buffer at the specified index.
Declaration
public void Insert(int index, ReadOnlySpan<T> items)
Parameters
Type | Name | Description |
---|---|---|
int | index | The zero-based index at which the new elements should be inserted. |
ReadOnlySpan<T> | items | The span whose elements should be inserted into this buffer. |
Exceptions
Type | Condition |
---|---|
ArgumentOutOfRangeException |
|
ObjectDisposedException | This writer has been disposed. |
Overwrite(int, ReadOnlySpan<T>)
Overwrites the elements in this buffer.
Declaration
public void Overwrite(int index, ReadOnlySpan<T> items)
Parameters
Type | Name | Description |
---|---|---|
int | index | The zero-based index at which the new elements should be rewritten. |
ReadOnlySpan<T> | items | The span whose elements should be added into this buffer. |
Exceptions
Type | Condition |
---|---|
ArgumentOutOfRangeException |
|
ObjectDisposedException | This writer has been disposed. |
RemoveFirst(int)
Removes the specified number of elements from the head of this buffer.
Declaration
public void RemoveFirst(int count)
Parameters
Type | Name | Description |
---|---|---|
int | count | The number of elements to be removed from the head of this buffer. |
Exceptions
Type | Condition |
---|---|
ArgumentOutOfRangeException |
|
ObjectDisposedException | This writer has been disposed. |
RemoveLast(int)
Removes the specified number of elements from the tail of this buffer.
Declaration
public void RemoveLast(int count)
Parameters
Type | Name | Description |
---|---|---|
int | count | The number of elements to be removed from the tail of this buffer. |
Exceptions
Type | Condition |
---|---|
ArgumentOutOfRangeException |
|
ObjectDisposedException | This writer has been disposed. |