Show / Hide Table of Contents

Class InMemoryClusterConfigurationStorage<TAddress>

Represents in-memory storage of cluster configuration.

Inheritance
object
Disposable
ClusterConfigurationStorage<TAddress>
InMemoryClusterConfigurationStorage<TAddress>
Implements
IClusterConfigurationStorage<TAddress>
IClusterConfigurationStorage
IDisposable
Inherited Members
ClusterConfigurationStorage<TAddress>.allocator
ClusterConfigurationStorage<TAddress>.Encode(TAddress, ref BufferWriterSlim<byte>)
ClusterConfigurationStorage<TAddress>.Decode(ref SequenceReader)
ClusterConfigurationStorage<TAddress>.ActiveConfigurationChanged
Disposable.IsDisposed
Disposable.IsDisposing
Disposable.IsDisposingOrDisposed
Disposable.CreateException()
Disposable.DisposedTask
Disposable.GetDisposedTask<T>()
Disposable.TrySetDisposedException<T>(TaskCompletionSource<T>)
Disposable.TrySetDisposedException(TaskCompletionSource)
Disposable.DisposeAsyncCore()
Disposable.DisposeAsync()
Disposable.TryBeginDispose()
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.MemberwiseClone()
object.ReferenceEquals(object, object)
object.ToString()
Namespace: DotNext.Net.Cluster.Consensus.Raft.Membership
Assembly: DotNext.Net.Cluster.dll
Syntax
public abstract class InMemoryClusterConfigurationStorage<TAddress> : ClusterConfigurationStorage<TAddress>, IClusterConfigurationStorage<TAddress>, IClusterConfigurationStorage, IDisposable where TAddress : notnull
Type Parameters
Name Description
TAddress

The type of cluster member address.

Constructors

| Edit this page View Source

InMemoryClusterConfigurationStorage(IEqualityComparer<TAddress>?, MemoryAllocator<byte>?)

Initializes a new in-memory configuration storage.

Declaration
protected InMemoryClusterConfigurationStorage(IEqualityComparer<TAddress>? comparer = null, MemoryAllocator<byte>? allocator = null)
Parameters
Type Name Description
IEqualityComparer<TAddress> comparer

An object responsible for comparison of TAddress values.

MemoryAllocator<byte> allocator

The memory allocator.

Properties

| Edit this page View Source

ActiveConfiguration

Gets active configuration.

Declaration
public override sealed IClusterConfiguration ActiveConfiguration { get; }
Property Value
Type Description
IClusterConfiguration
Overrides
ClusterConfigurationStorage<TAddress>.ActiveConfiguration
| Edit this page View Source

HasProposal

Gets a value indicating that this storage has proposed configuration.

Declaration
public override sealed bool HasProposal { get; }
Property Value
Type Description
bool
Overrides
ClusterConfigurationStorage<TAddress>.HasProposal
| Edit this page View Source

ProposedConfiguration

Gets proposed configuration.

Declaration
public override sealed IClusterConfiguration? ProposedConfiguration { get; }
Property Value
Type Description
IClusterConfiguration
Overrides
ClusterConfigurationStorage<TAddress>.ProposedConfiguration

Methods

| Edit this page View Source

AddMember(TAddress)

Proposes a new member.

Declaration
public bool AddMember(TAddress address)
Parameters
Type Name Description
TAddress address

The address of the cluster member.

Returns
Type Description
bool

true if the new member is added to the proposed configuration; false if the storage has the proposed configuration already.

| Edit this page View Source

AddMemberAsync(TAddress, CancellationToken)

Proposes a new member.

Declaration
protected override sealed ValueTask<bool> AddMemberAsync(TAddress address, CancellationToken token = default)
Parameters
Type Name Description
TAddress address

The address of the cluster member.

CancellationToken token

The token that can be used to cancel the operation.

Returns
Type Description
ValueTask<bool>

true if the new member is added to the proposed configuration; false if the storage has the proposed configuration already.

Overrides
ClusterConfigurationStorage<TAddress>.AddMemberAsync(TAddress, CancellationToken)
| Edit this page View Source

ApplyAsync(CancellationToken)

Applies proposed configuration as active configuration.

Declaration
protected override sealed ValueTask ApplyAsync(CancellationToken token)
Parameters
Type Name Description
CancellationToken token

The token that can be used to cancel the operation.

Returns
Type Description
ValueTask

The task representing asynchronous result.

Overrides
ClusterConfigurationStorage<TAddress>.ApplyAsync(CancellationToken)
| Edit this page View Source

CreateActiveConfigurationBuilder()

Creates a builder that can be used to initialize active configuration.

Declaration
public InMemoryClusterConfigurationStorage<TAddress>.ConfigurationBuilder CreateActiveConfigurationBuilder()
Returns
Type Description
InMemoryClusterConfigurationStorage<TAddress>.ConfigurationBuilder

A builder of active configuration.

| 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
ClusterConfigurationStorage<TAddress>.Dispose(bool)
| Edit this page View Source

LoadConfigurationAsync(CancellationToken)

Loads configuration from the storage.

Declaration
protected override sealed ValueTask LoadConfigurationAsync(CancellationToken token = default)
Parameters
Type Name Description
CancellationToken token

The token that can be used to cancel the operation.

Returns
Type Description
ValueTask

The task representing asynchronous result.

Overrides
ClusterConfigurationStorage<TAddress>.LoadConfigurationAsync(CancellationToken)
| Edit this page View Source

ProposeAsync(IClusterConfiguration, CancellationToken)

Proposes the configuration.

Declaration
protected override sealed ValueTask ProposeAsync(IClusterConfiguration configuration, CancellationToken token = default)
Parameters
Type Name Description
IClusterConfiguration configuration

The proposed configuration.

CancellationToken token

The token that can be used to cancel the operation.

Returns
Type Description
ValueTask

The task representing asynchronous result.

Overrides
ClusterConfigurationStorage<TAddress>.ProposeAsync(IClusterConfiguration, CancellationToken)
Remarks

If method is called multiple times then ProposedConfiguration will be rewritten.

| Edit this page View Source

RemoveMember(TAddress)

Proposes removal of the existing member.

Declaration
public bool RemoveMember(TAddress address)
Parameters
Type Name Description
TAddress address

The address of the cluster member.

Returns
Type Description
bool

true if the new member is added to the proposed configuration; false if the storage has the proposed configuration already.

| Edit this page View Source

RemoveMemberAsync(TAddress, CancellationToken)

Proposes removal of the existing member.

Declaration
protected override sealed ValueTask<bool> RemoveMemberAsync(TAddress address, CancellationToken token = default)
Parameters
Type Name Description
TAddress address

The address of the cluster member.

CancellationToken token

The token that can be used to cancel the operation.

Returns
Type Description
ValueTask<bool>

true if the new member is added to the proposed configuration; false if the storage has the proposed configuration already.

Overrides
ClusterConfigurationStorage<TAddress>.RemoveMemberAsync(TAddress, CancellationToken)

Implements

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