aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/buildeventstream/ArtifactGroupNamer.java
diff options
context:
space:
mode:
authorGravatar Klaus Aehlig <aehlig@google.com>2017-04-07 14:25:27 +0000
committerGravatar Marcel Hlopko <hlopko@google.com>2017-04-07 16:44:52 +0200
commitee3e19202ab9aaf3ed6ff13af029a7f643af7f3a (patch)
treea6971718cfc642ece74520a057fe8fed88c7fbd5 /src/main/java/com/google/devtools/build/lib/buildeventstream/ArtifactGroupNamer.java
parent90349cace2d7e883616c62f15cb9a19d625f0515 (diff)
BEP: Extend infrastructure to allow reporting artifacts only once
Extend the functionality of the BuildEventStreamer to report those parts of NestedSets of Artifacts not reported earlier. In this way, duplicate reporting can be avoided, without the events themselves having to know which artifacts are known already. Change-Id: Ia959c28c440301860eac57ea5d9a712c0d49ebdf PiperOrigin-RevId: 152497672
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/buildeventstream/ArtifactGroupNamer.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/buildeventstream/ArtifactGroupNamer.java26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/buildeventstream/ArtifactGroupNamer.java b/src/main/java/com/google/devtools/build/lib/buildeventstream/ArtifactGroupNamer.java
new file mode 100644
index 0000000000..ede4767e41
--- /dev/null
+++ b/src/main/java/com/google/devtools/build/lib/buildeventstream/ArtifactGroupNamer.java
@@ -0,0 +1,26 @@
+// Copyright 2017 The Bazel Authors. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+package com.google.devtools.build.lib.buildeventstream;
+
+
+/** Interface for conversion of paths to URIs. */
+public interface ArtifactGroupNamer {
+ /**
+ * Return the name of a declared group of artifacts, identified by the identifier of their {@link
+ * NestedSetView}. A {@link BuildEvent} should only assume that this function is defined if the
+ * corresponding {@link NestedSet<Artifact>} is declared via the {@link EventReportingArtifacts}
+ * interface. On undefined positions, the value null is returned.
+ */
+ BuildEventStreamProtos.BuildEventId.NamedSetOfFilesId apply(Object id);
+}