diff options
author | 2017-06-29 20:22:15 +0200 | |
---|---|---|
committer | 2017-06-30 13:00:25 +0200 | |
commit | db54a93c6bd4d571177b13604e9e87028f158f78 (patch) | |
tree | 437d3eacdb8bbfae11cab0c003310e5bbf655448 /src/main/java/com/google/devtools/build/lib/rules/extra | |
parent | 534618c1d3fb65a527f63e5793bf3712a9957d96 (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.java | 16 |
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 |