aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/actions/Action.java
diff options
context:
space:
mode:
authorGravatar mjhalupka <mjhalupka@google.com>2018-02-20 09:45:07 -0800
committerGravatar Copybara-Service <copybara-piper@google.com>2018-02-20 09:46:46 -0800
commitb80158aca7f9cb99023e2f83effe2caefd0bb2d8 (patch)
tree7865b0b683aff19c015a29faab1ac40d580e2d30 /src/main/java/com/google/devtools/build/lib/actions/Action.java
parentae011947a89dc15ffa33322176ae8738c3894a7d (diff)
Serialize MiddlemanAction and add strategy=Strategy.Polymorphic for Action and
AbstractAction. PiperOrigin-RevId: 186316435
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/actions/Action.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/actions/Action.java6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/actions/Action.java b/src/main/java/com/google/devtools/build/lib/actions/Action.java
index 217ce5d59d..54f562a332 100644
--- a/src/main/java/com/google/devtools/build/lib/actions/Action.java
+++ b/src/main/java/com/google/devtools/build/lib/actions/Action.java
@@ -17,6 +17,9 @@ package com.google.devtools.build.lib.actions;
import com.google.devtools.build.lib.actions.extra.ExtraActionInfo;
import com.google.devtools.build.lib.concurrent.ThreadSafety.ConditionallyThreadCompatible;
import com.google.devtools.build.lib.profiler.Describable;
+import com.google.devtools.build.lib.skyframe.serialization.ObjectCodec;
+import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
+import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec.Strategy;
import com.google.devtools.build.lib.vfs.FileSystem;
import com.google.devtools.build.lib.vfs.Path;
import com.google.devtools.build.skyframe.SkyFunction;
@@ -36,6 +39,7 @@ import javax.annotation.Nullable;
* a new custom subclass.
*
* <p>These are the most important requirements for subclasses:
+ *
* <ul>
* <li>Actions must be generally immutable; we currently make an exception for C++, and that has
* been a constant source of correctness issues; there are still ongoing incremental
@@ -75,7 +79,9 @@ import javax.annotation.Nullable;
* known set of fields is covered, not that all fields are covered), so carefully check all changes
* to action subclasses.
*/
+@AutoCodec(strategy = Strategy.POLYMORPHIC)
public interface Action extends ActionExecutionMetadata, Describable {
+ public static final ObjectCodec<Action> CODEC = new Action_AutoCodec();
/**
* Prepares for executing this action; called by the Builder prior to executing the Action itself.