aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/skyframe/BuildInfoCollectionFunction.java
diff options
context:
space:
mode:
authorGravatar tomlu <tomlu@google.com>2017-11-29 14:01:21 -0800
committerGravatar Copybara-Service <copybara-piper@google.com>2017-11-29 14:03:30 -0800
commit3d1a194ff9e76f25f1a7242ff2d021523ba8e4a0 (patch)
tree9fec583a59b8ee6ee0f4fac513d5471956dfe1d3 /src/main/java/com/google/devtools/build/lib/skyframe/BuildInfoCollectionFunction.java
parent8f8b8859fc7d85feee97481443fb11c0b7ae03ce (diff)
Add ActionKeyContext to Action#getKey.
This key context can be used by actions to share partial key computations, for instance when computing MD5s for nested sets. RELNOTES: None PiperOrigin-RevId: 177359607
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/skyframe/BuildInfoCollectionFunction.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/BuildInfoCollectionFunction.java5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/BuildInfoCollectionFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/BuildInfoCollectionFunction.java
index e7796b4c56..62878a5fe2 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/BuildInfoCollectionFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/BuildInfoCollectionFunction.java
@@ -16,6 +16,7 @@ package com.google.devtools.build.lib.skyframe;
import com.google.common.base.Preconditions;
import com.google.common.base.Supplier;
import com.google.common.collect.ImmutableMap;
+import com.google.devtools.build.lib.actions.ActionKeyContext;
import com.google.devtools.build.lib.actions.Artifact;
import com.google.devtools.build.lib.actions.ArtifactFactory;
import com.google.devtools.build.lib.actions.Root;
@@ -36,15 +37,18 @@ import com.google.devtools.build.skyframe.SkyValue;
* injected value.
*/
public class BuildInfoCollectionFunction implements SkyFunction {
+ private final ActionKeyContext actionKeyContext;
// Supplier only because the artifact factory has not yet been created at constructor time.
private final Supplier<ArtifactFactory> artifactFactory;
private final Supplier<Boolean> removeActionsAfterEvaluation;
private final ImmutableMap<BuildInfoKey, BuildInfoFactory> buildInfoFactories;
BuildInfoCollectionFunction(
+ ActionKeyContext actionKeyContext,
Supplier<ArtifactFactory> artifactFactory,
ImmutableMap<BuildInfoKey, BuildInfoFactory> buildInfoFactories,
Supplier<Boolean> removeActionsAfterEvaluation) {
+ this.actionKeyContext = actionKeyContext;
this.artifactFactory = artifactFactory;
this.buildInfoFactories = buildInfoFactories;
this.removeActionsAfterEvaluation = Preconditions.checkNotNull(removeActionsAfterEvaluation);
@@ -77,6 +81,7 @@ public class BuildInfoCollectionFunction implements SkyFunction {
};
return new BuildInfoCollectionValue(
+ actionKeyContext,
buildInfoFactories
.get(keyAndConfig.getInfoKey())
.create(