aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/extra
diff options
context:
space:
mode:
authorGravatar janakr <janakr@google.com>2017-06-29 20:22:15 +0200
committerGravatar Marcel Hlopko <hlopko@google.com>2017-06-30 13:00:25 +0200
commitdb54a93c6bd4d571177b13604e9e87028f158f78 (patch)
tree437d3eacdb8bbfae11cab0c003310e5bbf655448 /src/main/java/com/google/devtools/build/lib/rules/extra
parent534618c1d3fb65a527f63e5793bf3712a9957d96 (diff)
Add a #getBytes() method to DeterministicWriter that returns a ByteString. By default it just delegates to the existing #writeOutputFile, but implementations may choose to override if they have easy access to a ByteString.
Also change some DeterministicWriter implementations that do have easy access to the ByteString. PiperOrigin-RevId: 160550028
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/extra')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/extra/ExtraActionInfoFileWriteAction.java16
1 files changed, 2 insertions, 14 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/extra/ExtraActionInfoFileWriteAction.java b/src/main/java/com/google/devtools/build/lib/rules/extra/ExtraActionInfoFileWriteAction.java
index f1db755e8f..36fee0385f 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/extra/ExtraActionInfoFileWriteAction.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/extra/ExtraActionInfoFileWriteAction.java
@@ -19,13 +19,12 @@ import com.google.devtools.build.lib.actions.ActionExecutionContext;
import com.google.devtools.build.lib.actions.ActionOwner;
import com.google.devtools.build.lib.actions.Artifact;
import com.google.devtools.build.lib.actions.ExecException;
-import com.google.devtools.build.lib.actions.extra.ExtraActionInfo;
import com.google.devtools.build.lib.analysis.actions.AbstractFileWriteAction;
+import com.google.devtools.build.lib.analysis.actions.ProtoDeterministicWriter;
import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
import com.google.devtools.build.lib.util.Fingerprint;
import com.google.devtools.build.lib.util.Preconditions;
import java.io.IOException;
-import java.io.OutputStream;
/**
* Requests extra action info from shadowed action and writes it, in protocol buffer format, to an
@@ -48,18 +47,7 @@ public final class ExtraActionInfoFileWriteAction extends AbstractFileWriteActio
@Override
public DeterministicWriter newDeterministicWriter(ActionExecutionContext ctx)
throws IOException, InterruptedException, ExecException {
- return new DeterministicWriter() {
- // Instantiate the extra action info only on execution, so it is computed freshly each
- // execution, but is constant for the lifetime of this action's execution. These are not
- // large objects, so keeping them in memory for the duration of a single action's execution
- // is acceptable.
- private final ExtraActionInfo extraActionInfo = shadowedAction.getExtraActionInfo().build();
-
- @Override
- public void writeOutputFile(OutputStream out) throws IOException {
- extraActionInfo.writeTo(out);
- }
- };
+ return new ProtoDeterministicWriter(shadowedAction.getExtraActionInfo().build());
}
@Override