V
- The rule key type.public class DefaultRuleKeyCache<V> extends Object implements TrackableRuleKeyCache<V>
RuleKey
cache used by a RuleKeyFactory
. Inputs and dependencies of cached rule
keys are tracked to allow for invalidations based on changed inputs. As such, this cache is
usable between multiple build runs.Constructor and Description |
---|
DefaultRuleKeyCache() |
Modifier and Type | Method and Description |
---|---|
V |
get(AddsToRuleKey appendable,
java.util.function.Function<? super AddsToRuleKey,RuleKeyResult<V>> create,
CacheStatsTracker statsTracker) |
V |
get(BuildEngineAction action,
CacheStatsTracker statsTracker) |
V |
get(BuildEngineAction action,
java.util.function.Function<? super BuildEngineAction,RuleKeyResult<V>> create,
CacheStatsTracker statsTracker) |
com.google.common.collect.ImmutableList<Map.Entry<BuildRule,V>> |
getCachedBuildRules() |
void |
invalidateAll(CacheStatsTracker statsTracker)
Invalidate everything in the cache.
|
void |
invalidateAllExceptFilesystems(com.google.common.collect.ImmutableSet<ProjectFilesystem> filesystems,
CacheStatsTracker statsTracker)
Invalidate all inputs *not* from the given
ProjectFilesystem s and their transitive
dependents. |
void |
invalidateFilesystem(ProjectFilesystem filesystem,
CacheStatsTracker statsTracker)
Invalidate all inputs from a given
ProjectFilesystem and their transitive dependents. |
void |
invalidateInputs(Iterable<com.facebook.buck.rules.keys.RuleKeyInput> inputs,
CacheStatsTracker statsTracker)
Invalidate the given inputs and all their transitive dependents.
|
@Nullable public V get(BuildEngineAction action, CacheStatsTracker statsTracker)
get
in interface TrackableRuleKeyCache<V>
public V get(BuildEngineAction action, java.util.function.Function<? super BuildEngineAction,RuleKeyResult<V>> create, CacheStatsTracker statsTracker)
get
in interface TrackableRuleKeyCache<V>
public V get(AddsToRuleKey appendable, java.util.function.Function<? super AddsToRuleKey,RuleKeyResult<V>> create, CacheStatsTracker statsTracker)
get
in interface TrackableRuleKeyCache<V>
public void invalidateInputs(Iterable<com.facebook.buck.rules.keys.RuleKeyInput> inputs, CacheStatsTracker statsTracker)
invalidateInputs
in interface TrackableRuleKeyCache<V>
public void invalidateAllExceptFilesystems(com.google.common.collect.ImmutableSet<ProjectFilesystem> filesystems, CacheStatsTracker statsTracker)
ProjectFilesystem
s and their transitive
dependents.invalidateAllExceptFilesystems
in interface TrackableRuleKeyCache<V>
public void invalidateFilesystem(ProjectFilesystem filesystem, CacheStatsTracker statsTracker)
ProjectFilesystem
and their transitive dependents.invalidateFilesystem
in interface TrackableRuleKeyCache<V>
public void invalidateAll(CacheStatsTracker statsTracker)
invalidateAll
in interface TrackableRuleKeyCache<V>
public com.google.common.collect.ImmutableList<Map.Entry<BuildRule,V>> getCachedBuildRules()
getCachedBuildRules
in interface TrackableRuleKeyCache<V>