Show / Hide Table of Contents

Class ReadOnlySequenceAccessor

Represents factory of ReadOnlySequence<T> objects representing memory-mapped file content.

Inheritance
object
Disposable
ReadOnlySequenceAccessor
Implements
IReadOnlySequenceSource<byte>
IDisposable
ISupplier<ReadOnlySequence<byte>>
IFunctional<Func<ReadOnlySequence<byte>>>
Inherited Members
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)
object.ToString()
Namespace: DotNext.IO.MemoryMappedFiles
Assembly: DotNext.IO.dll
Syntax
public sealed class ReadOnlySequenceAccessor : Disposable, IReadOnlySequenceSource<byte>, IDisposable, ISupplier<ReadOnlySequence<byte>>, IFunctional<Func<ReadOnlySequence<byte>>>
Remarks

A sequence returned by Sequence property should not be accessed concurrently. For concurrent access, you need to obtain a new instance of ReadOnlySequenceAccessor class. The class uses lazy initialization of memory-mapped file segment every time when ReadOnlySequence<T> switching between segments.

Constructors

| Edit this page View Source

ReadOnlySequenceAccessor(FileStream, int)

Initializes a new accessor over memory-mapped file segments represented as ReadOnlySequence<T>.

Declaration
public ReadOnlySequenceAccessor(FileStream file, int segmentSize)
Parameters
Type Name Description
FileStream file

The file stream.

int segmentSize

The size of single segment, in bytes, that can be returned by ReadOnlySequence<T> as contiguous block of memory. So this parameter defines actual amount of occupied virtual memory.

Exceptions
Type Condition
ArgumentOutOfRangeException

segmentSize is less than or equal to zero; or it's greater than file size.

| Edit this page View Source

ReadOnlySequenceAccessor(MemoryMappedFile, int, long)

Initializes a new accessor over memory-mapped file segments represented as ReadOnlySequence<T>.

Declaration
public ReadOnlySequenceAccessor(MemoryMappedFile file, int segmentSize, long size)
Parameters
Type Name Description
MemoryMappedFile file

The memory-mapped file.

int segmentSize

The size of single segment, in bytes, that can be returned by ReadOnlySequence<T> as contiguous block of memory. So this parameter defines actual amount of occupied virtual memory.

long size

The observable length, in bytes, of memory-mapped file.

Exceptions
Type Condition
ArgumentOutOfRangeException

segmentSize is less than or equal to zero; or size is less than or equal to zero; or segmentSize is greater than size.

Properties

| Edit this page View Source

Sequence

Gets the sequence of memory-mapped file fragments.

Declaration
public ReadOnlySequence<byte> Sequence { get; }
Property Value
Type Description
ReadOnlySequence<byte>
Remarks

The sequence produced by this instance should not be accessed concurrently.

Exceptions
Type Condition
ObjectDisposedException

This object has been disposed.

Methods

| 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
Disposable.Dispose(bool)

Implements

IReadOnlySequenceSource<T>
IDisposable
ISupplier<TResult>
IFunctional<TDelegate>

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)
  • Edit this page
  • View Source
☀
☾
In this article
Back to top
Supported by the .NET Foundation
☀
☾