Class VersionControlDecorator
- Namespace
- Foundation.Data.Doublets.Cli
- Assembly
- Foundation.Data.Doublets.Cli.dll
Decorator that sits above TransactionsDecorator and adds time travel (Checkout(long)), branching (Branch(string, long?), SwitchBranch(string)), and tagging (Tag(string, long?)) over the transitions log. Optional — when not instantiated the underlying transactions decorator behaves identically.
public class VersionControlDecorator : LinksDecoratorBase<uint>, IVersionControlLinks, INamedTypesLinks<uint>, ILinks<uint>, ILinks<uint, LinksConstants<uint>>, INamedTypes<uint>, IDisposable
- Implements
-
ILinks<uint>
- Inherited Members
-
LinksDecoratorBase<uint>._constantsLinksDecoratorBase<uint>._facadeLinksDecoratorBase<uint>.FacadeLinksDecoratorBase<uint>.ConstantsLinksOperatorBase<uint>._linksLinksOperatorBase<uint>.Links
- Extension Methods
Constructors
VersionControlDecorator(TransactionsDecorator, INamedTypesLinks<uint>, bool)
public VersionControlDecorator(TransactionsDecorator transactions, INamedTypesLinks<uint> branchesStore, bool trace = false)
Parameters
transactionsTransactionsDecoratorbranchesStoreINamedTypesLinks<uint>tracebool
Fields
DefaultBranchName
Default name of the initial branch (analogous to git's main).
public const string DefaultBranchName = "main"
Field Value
Properties
CurrentBranch
public virtual string CurrentBranch { get; }
Property Value
CurrentSequence
public virtual long CurrentSequence { get; }
Property Value
Methods
BeginTransaction()
public virtual ITransaction<uint> BeginTransaction()
Returns
BeginTransactionAsync(CancellationToken)
public virtual Task<ITransaction<uint>> BeginTransactionAsync(CancellationToken cancellationToken = default)
Parameters
cancellationTokenCancellationToken
Returns
Branch(string, long?)
public virtual void Branch(string name, long? from = null)
Parameters
Checkout(long)
public virtual void Checkout(long sequence)
Parameters
sequencelong
Create(IList<uint>?, WriteHandler<uint>?)
Creates the restriction.
public override uint Create(IList<uint>? substitution, WriteHandler<uint>? handler)
Parameters
Returns
- uint
The link
Delete(IList<uint>?, WriteHandler<uint>?)
Deletes the restriction.
public override uint Delete(IList<uint>? restriction, WriteHandler<uint>? handler)
Parameters
Returns
Dispose()
Rolls back and releases the transaction that is still open, if any. The wrapped transactions decorator and branches store are owned by the caller and are deliberately left untouched.
public void Dispose()
Dispose(bool)
Rolls back and releases the open transaction. Derived decorators that
own extra resources override this and call
base.Dispose(disposing).
protected virtual void Dispose(bool disposing)
Parameters
disposingbool
GetByName(string)
public virtual uint GetByName(string name)
Parameters
namestring
Returns
GetName(uint)
public virtual string? GetName(uint link)
Parameters
linkuint
Returns
ListBranches()
public virtual IReadOnlyList<BranchInfo> ListBranches()
Returns
ListTags()
public virtual IReadOnlyDictionary<string, long> ListTags()
Returns
MakeVersionControlDatabaseFilename(string)
Conventional sidecar filename for the version-control store.
public static string MakeVersionControlDatabaseFilename(string databaseFilename)
Parameters
databaseFilenamestring
Returns
Recover()
public virtual void Recover()
RemoveName(uint)
public virtual void RemoveName(uint link)
Parameters
linkuint
SetName(uint, string)
public virtual uint SetName(uint link, string name)
Parameters
Returns
SwitchBranch(string)
public virtual void SwitchBranch(string name)
Parameters
namestring
Tag(string, long?)
public virtual void Tag(string name, long? sequence = null)
Parameters
TryGetTag(string, out long)
public virtual bool TryGetTag(string name, out long sequence)
Parameters
Returns
Update(IList<uint>?, IList<uint>?, WriteHandler<uint>?)
Updates the restriction.
public override uint Update(IList<uint>? restriction, IList<uint>? substitution, WriteHandler<uint>? handler)
Parameters
restrictionIList<uint>The restriction.
substitutionIList<uint>The substitution.
handlerWriteHandler<uint>
Returns
- uint
The link