aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorGravatar janakr <janakr@google.com>2018-02-27 15:39:08 -0800
committerGravatar Copybara-Service <copybara-piper@google.com>2018-02-27 15:41:09 -0800
commitb4e8cd7beddc3c29acf7629d4e6eef9b6ca67c5f (patch)
treeaf1f6bd6f51ccd0e2168f924ac2eb4bfa6070298 /src
parent8dbf6054e4f843c42d7339e5abc48b9b655f6dae (diff)
@AutoCodec TreeArtifactValue and FileArtifactValue.
PiperOrigin-RevId: 187243942
Diffstat (limited to 'src')
-rw-r--r--src/main/java/com/google/devtools/build/lib/packages/NativeAspectClass.java6
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/FileArtifactValue.java21
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/TreeArtifactValue.java5
3 files changed, 22 insertions, 10 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/packages/NativeAspectClass.java b/src/main/java/com/google/devtools/build/lib/packages/NativeAspectClass.java
index ed6b77bbc2..68107eb99b 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/NativeAspectClass.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/NativeAspectClass.java
@@ -50,7 +50,8 @@ public abstract class NativeAspectClass implements AspectClass {
public void serialize(
SerializationContext context, NativeAspectClass obj, CodedOutputStream codedOut)
throws SerializationException, IOException {
- RuleClassProvider ruleClassProvider = context.getDependency(RuleClassProvider.class);
+ RuleClassProvider ruleClassProvider =
+ Preconditions.checkNotNull(context.getDependency(RuleClassProvider.class), obj);
NativeAspectClass storedAspect = ruleClassProvider.getNativeAspectClass(obj.getKey());
Preconditions.checkState(
obj == storedAspect, "Not stored right: %s %s %s", obj, storedAspect, ruleClassProvider);
@@ -62,7 +63,8 @@ public abstract class NativeAspectClass implements AspectClass {
throws SerializationException, IOException {
String aspectKey = StringCodecs.asciiOptimized().deserialize(context, codedIn);
return Preconditions.checkNotNull(
- context.getDependency(RuleClassProvider.class).getNativeAspectClass(aspectKey),
+ Preconditions.checkNotNull(context.getDependency(RuleClassProvider.class), aspectKey)
+ .getNativeAspectClass(aspectKey),
aspectKey);
}
}
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/FileArtifactValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/FileArtifactValue.java
index 4c9a273139..8d171873ae 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/FileArtifactValue.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/FileArtifactValue.java
@@ -23,6 +23,7 @@ import com.google.devtools.build.lib.actions.cache.DigestUtils;
import com.google.devtools.build.lib.actions.cache.Metadata;
import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
import com.google.devtools.build.lib.concurrent.ThreadSafety.ThreadSafe;
+import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import com.google.devtools.build.lib.vfs.FileStatus;
import com.google.devtools.build.lib.vfs.Path;
import com.google.devtools.build.lib.vfs.Symlinks;
@@ -113,21 +114,24 @@ public abstract class FileArtifactValue implements SkyValue, Metadata {
}
}
- static final FileArtifactValue DEFAULT_MIDDLEMAN = new SingletonMarkerValue();
+ @AutoCodec static final FileArtifactValue DEFAULT_MIDDLEMAN = new SingletonMarkerValue();
/** Data that marks that a file is not present on the filesystem. */
- @VisibleForTesting
+ @VisibleForTesting @AutoCodec
public static final FileArtifactValue MISSING_FILE_MARKER = new SingletonMarkerValue();
/**
* Represents an omitted file -- we are aware of it but it doesn't exist. All access methods are
* unsupported.
*/
- static final FileArtifactValue OMITTED_FILE_MARKER = new OmittedFileValue();
+ @AutoCodec static final FileArtifactValue OMITTED_FILE_MARKER = new OmittedFileValue();
- private static final class DirectoryArtifactValue extends FileArtifactValue {
+ @AutoCodec.VisibleForSerialization
+ @AutoCodec
+ static final class DirectoryArtifactValue extends FileArtifactValue {
private final long mtime;
- private DirectoryArtifactValue(long mtime) {
+ @AutoCodec.VisibleForSerialization
+ DirectoryArtifactValue(long mtime) {
this.mtime = mtime;
}
@@ -163,12 +167,15 @@ public abstract class FileArtifactValue implements SkyValue, Metadata {
}
}
- private static final class RegularFileArtifactValue extends FileArtifactValue {
+ @AutoCodec.VisibleForSerialization
+ @AutoCodec
+ static final class RegularFileArtifactValue extends FileArtifactValue {
private final byte[] digest;
@Nullable private final FileContentsProxy proxy;
private final long size;
- private RegularFileArtifactValue(byte[] digest, @Nullable FileContentsProxy proxy, long size) {
+ @AutoCodec.VisibleForSerialization
+ RegularFileArtifactValue(byte[] digest, @Nullable FileContentsProxy proxy, long size) {
this.digest = Preconditions.checkNotNull(digest);
this.proxy = proxy;
this.size = size;
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/TreeArtifactValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/TreeArtifactValue.java
index f54522f8f1..4cf001457a 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/TreeArtifactValue.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/TreeArtifactValue.java
@@ -23,6 +23,7 @@ import com.google.devtools.build.lib.actions.Artifact;
import com.google.devtools.build.lib.actions.Artifact.TreeFileArtifact;
import com.google.devtools.build.lib.actions.cache.DigestUtils;
import com.google.devtools.build.lib.actions.cache.Metadata;
+import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import com.google.devtools.build.lib.vfs.Path;
import com.google.devtools.build.lib.vfs.PathFragment;
import com.google.devtools.build.skyframe.SkyValue;
@@ -36,6 +37,7 @@ import javax.annotation.Nullable;
* Value for TreeArtifacts, which contains a digest and the {@link FileArtifactValue}s of its child
* {@link TreeFileArtifact}s.
*/
+@AutoCodec
class TreeArtifactValue implements SkyValue {
private static final Function<Artifact, PathFragment> PARENT_RELATIVE_PATHS =
new Function<Artifact, PathFragment>() {
@@ -48,7 +50,8 @@ class TreeArtifactValue implements SkyValue {
private final byte[] digest;
private final Map<TreeFileArtifact, FileArtifactValue> childData;
- private TreeArtifactValue(byte[] digest, Map<TreeFileArtifact, FileArtifactValue> childData) {
+ @AutoCodec.VisibleForSerialization
+ TreeArtifactValue(byte[] digest, Map<TreeFileArtifact, FileArtifactValue> childData) {
this.digest = digest;
this.childData = ImmutableMap.copyOf(childData);
}