C# Класс Bari.Core.Build.Cache.MemoryBuildCache

Simple build cache which only stores build outputs until the process is running
Наследование: IBuildCache, IDisposable
Показать файл Открыть проект Примеры использования класса

Открытые методы

Метод Описание
Contains ( BuildKey builder, IDependencyFingerprint fingerprint ) : bool

Checks if the cache contains stored outputs for a given builder with a given dependency fingerprint

If IBuildCache.Restore will be also called, the cache must be locked first using the IBuildCache.LockForBuilder method.

ContainsAny ( BuildKey builder ) : bool

Checks if the cache contains stored outputs for a given builder with any dependency fingerprint

Dispose ( ) : void

Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.

LockForBuilder ( BuildKey builder ) : void

Locks the cache for a given builder.

Until calling IBuildCache.UnlockForBuilder, it is guaranteed that no IBuildCache.Store operation will be ran for the given builder from other threads.

Restore ( BuildKey builder, IFileSystemDirectory targetRoot, bool aggressive, Regex aggressiveExceptions = null ) : ISet

Restores the stored files for a given builder to a file system directory

The cache only stores the latest stored results and this is what will be restored to the target directory. To verify if it was generated with the correct dependency fingerprint, use IBuildCache.Contains.

To ensure thread safety, use IBuildCache.LockForBuilder.

Store ( BuildKey builder, IDependencyFingerprint fingerprint, IEnumerable outputs, IFileSystemDirectory targetRoot ) : void

Store build outputs in the cache by reading them from the file system

UnlockForBuilder ( BuildKey builder ) : void

Removes the lock put by the IBuildCache.LockForBuilder method.

Приватные методы

Метод Описание
GetOrCreate ( BuildKey builder ) : Bari.Core.Build.Cache.MemoryCacheItem

Описание методов

Contains() публичный Метод

Checks if the cache contains stored outputs for a given builder with a given dependency fingerprint

If IBuildCache.Restore will be also called, the cache must be locked first using the IBuildCache.LockForBuilder method.

public Contains ( BuildKey builder, IDependencyFingerprint fingerprint ) : bool
builder BuildKey Builder key
fingerprint IDependencyFingerprint Current dependency fingerprint
Результат bool

ContainsAny() публичный Метод

Checks if the cache contains stored outputs for a given builder with any dependency fingerprint
public ContainsAny ( BuildKey builder ) : bool
builder BuildKey Builder key
Результат bool

Dispose() публичный Метод

Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
public Dispose ( ) : void
Результат void

LockForBuilder() публичный Метод

Locks the cache for a given builder.

Until calling IBuildCache.UnlockForBuilder, it is guaranteed that no IBuildCache.Store operation will be ran for the given builder from other threads.

public LockForBuilder ( BuildKey builder ) : void
builder BuildKey Builder key
Результат void

Restore() публичный Метод

Restores the stored files for a given builder to a file system directory

The cache only stores the latest stored results and this is what will be restored to the target directory. To verify if it was generated with the correct dependency fingerprint, use IBuildCache.Contains.

To ensure thread safety, use IBuildCache.LockForBuilder.

public Restore ( BuildKey builder, IFileSystemDirectory targetRoot, bool aggressive, Regex aggressiveExceptions = null ) : ISet
builder BuildKey Builder key
targetRoot IFileSystemDirectory Target file system directory
aggressive bool If true, files in the target directory won't be checked by hash before overriding them
aggressiveExceptions Regex Exceptions to the aggresivve mode. Can be null if not used.
Результат ISet

Store() публичный Метод

Store build outputs in the cache by reading them from the file system
public Store ( BuildKey builder, IDependencyFingerprint fingerprint, IEnumerable outputs, IFileSystemDirectory targetRoot ) : void
builder BuildKey Builder key (first part of the key)
fingerprint IDependencyFingerprint Dependency fingerprint created when the builder was executed (second part of the key)
outputs IEnumerable Target-relative path of the build outputs to be cached
targetRoot IFileSystemDirectory File system abstraction of the root target directory
Результат void

UnlockForBuilder() публичный Метод

Removes the lock put by the IBuildCache.LockForBuilder method.
public UnlockForBuilder ( BuildKey builder ) : void
builder BuildKey Builder key
Результат void