Table of Contents

Namespace Tharga.MongoDB.Lockable

Classes

CallbackResult<TEntity>
CommitException
DocumentLeaseCommitSummary<TKey>

Summary returned from CommitAsync(bool, CancellationToken).

DocumentLeaseFailure<TKey>

One commit failure inside a DocumentLease<T, TKey>.

DocumentLease<T>

Lease over multiple locked documents. Per-document commit decisions are staged via MarkForUpdate, MarkForDelete, or MarkRelease, and applied sequentially on CommitAsync. Disposal without commit releases all not-yet-marked locks.

DocumentLease<T, TKey>

Lease over multiple locked documents. Per-document commit decisions are staged via MarkForUpdate, MarkForDelete(TKey), or MarkRelease(TKey), and applied sequentially on CommitAsync(bool, CancellationToken). Disposal without commit releases all not-yet-marked locks.

EntityLock<T>
EntityLock<T, TKey>
EntityScopeBuilder
EntityScopeExtensions
EntityScope<T>
EntityScope<T, TKey>
ExceptionInfo
Lock
LockActionExtensions
LockAlreadyReleasedException
LockErrorException
LockEventArgs<TEntity>
LockException
LockExpiredException
LockScope<T>

Scope returned by ILockableRepositoryCollection<TEntity, TKey>.LockAsync(...). Unlike EntityScope<T, TKey>, the commit decision (Update vs Delete) is taken at commit time, not at lock time.

LockScope<T, TKey>

Scope returned by ILockableRepositoryCollection<TEntity, TKey>.LockAsync(...). The commit decision (Update vs Delete) is taken at commit time, not at lock time. Disposal without commit releases the lock unchanged (mirrors EntityScope<T, TKey>).

LockableEntityBase
LockableEntityBaseExtensions
LockableEntityBase<TKey>
LockableRepositoryCollectionBase<TEntity>
LockableRepositoryCollectionBase<TEntity, TKey>
PickException
UnknownException
UnlockDifferentEntityException

Interfaces

ILockableRepositoryCollection<TEntity>
ILockableRepositoryCollection<TEntity, TKey>

Enums

CommitMode
DeleteMode
LockAction
LockMode
LockableErrorKind

Discriminator passed to the unified error handler on the EntityScopeExtensions.ExecuteAsync overload that takes Action<LockableErrorKind, Exception>, so callers can route every error type from a single callback without try/catching individual exception classes.

ReleaseMode