diff options
author | 2018-02-20 09:45:07 -0800 | |
---|---|---|
committer | 2018-02-20 09:46:46 -0800 | |
commit | b80158aca7f9cb99023e2f83effe2caefd0bb2d8 (patch) | |
tree | 7865b0b683aff19c015a29faab1ac40d580e2d30 /src/main/java/com/google/devtools/build/lib/actions/Action.java | |
parent | ae011947a89dc15ffa33322176ae8738c3894a7d (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.java | 6 |
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. |