public interface ArtifactCache extends AutoCloseable
| Modifier and Type | Method and Description |
|---|---|
void |
close() |
com.google.common.util.concurrent.ListenableFuture<CacheDeleteResult> |
deleteAsync(List<RuleKey> ruleKeys) |
com.google.common.util.concurrent.ListenableFuture<CacheResult> |
fetchAsync(BuildTarget target,
RuleKey ruleKey,
LazyPath output)
Fetch a cached artifact, keyed by ruleKey, save the artifact to path specified by output, and
return true on success.
|
CacheReadMode |
getCacheReadMode()
This method must return the same value over the lifetime of this object.
|
com.google.common.util.concurrent.ListenableFuture<com.google.common.collect.ImmutableMap<RuleKey,CacheResult>> |
multiContainsAsync(com.google.common.collect.ImmutableSet<RuleKey> ruleKeys)
Check if the cache contains the given artifacts, keyed by ruleKeys, without fetching them, and
return a map of results wrapped in a
ListenableFuture. |
void |
skipPendingAndFutureAsyncFetches()
All pending (and future) async fetches will be immediately marked as skipped.
|
com.google.common.util.concurrent.ListenableFuture<Unit> |
store(ArtifactInfo info,
BorrowablePath output)
Store the artifact at path specified by output to cache, such that it can later be fetched
using ruleKey as the lookup key.
|
default com.google.common.util.concurrent.ListenableFuture<Unit> |
store(com.google.common.collect.ImmutableList<Pair<ArtifactInfo,BorrowablePath>> artifacts)
Store the list of artifacts at path specified by output to cache in passed order, such that it
can later be fetched using ruleKey as the lookup key.
|
com.google.common.util.concurrent.ListenableFuture<CacheResult> fetchAsync(@Nullable BuildTarget target, RuleKey ruleKey, LazyPath output)
target - rule for which this is an artifactruleKey - cache fetch keyoutput - Path to store artifact to. Path should not be accessed unless store operation is
guaranteed by the cache, to avoid potential extra disk I/O.CacheResultType.MISS (indicating a failure) or some type of
hit.void skipPendingAndFutureAsyncFetches()
com.google.common.util.concurrent.ListenableFuture<Unit> store(ArtifactInfo info, BorrowablePath output)
This is a noop if getCacheReadMode()} returns READONLY.
info - information to store with the artifactoutput - path to read artifact from. If its borrowable, you may freely move the file into
cache without obtaining a copy of the file.ListenableFuture that completes once the store has finished.default com.google.common.util.concurrent.ListenableFuture<Unit> store(com.google.common.collect.ImmutableList<Pair<ArtifactInfo,BorrowablePath>> artifacts)
This is a noop if getCacheReadMode()} returns READONLY.
artifacts - list of artifact info and path to be uploaded to the cache in given order.ListenableFuture that completes once the store has finished.com.google.common.util.concurrent.ListenableFuture<com.google.common.collect.ImmutableMap<RuleKey,CacheResult>> multiContainsAsync(com.google.common.collect.ImmutableSet<RuleKey> ruleKeys)
ListenableFuture. This is supposed to be fast, but
best-effort, meaning that there will be false-positives.ruleKeys - Set of cache fetch keys.CacheResult which can be a CacheResultType.MISS / CacheResultType.ERROR (indicating a failure) or CacheResultType.CONTAINS.com.google.common.util.concurrent.ListenableFuture<CacheDeleteResult> deleteAsync(List<RuleKey> ruleKeys)
CacheReadMode getCacheReadMode()
ArtifactCache supports storing artifacts.void close()
close in interface AutoCloseable