Augment the QueryableGraph#get[BatchWithFieldHints] method to take in parameters conveying the requesting node (if any), the requested node(s), as well as a reason for the skyframe graph lookup. Alternate graph implementations may be interested in this information.
--
MOS_MIGRATED_REVID=128496089
diff --git a/src/test/java/com/google/devtools/build/skyframe/NotifyingHelper.java b/src/test/java/com/google/devtools/build/skyframe/NotifyingHelper.java
index 711e9e7..af0049b 100644
--- a/src/test/java/com/google/devtools/build/skyframe/NotifyingHelper.java
+++ b/src/test/java/com/google/devtools/build/skyframe/NotifyingHelper.java
@@ -19,7 +19,6 @@
import com.google.common.collect.Maps.EntryTransformer;
import com.google.devtools.build.lib.concurrent.ThreadSafety.ThreadSafe;
import com.google.devtools.build.lib.util.GroupedList;
-
import java.util.EnumSet;
import java.util.Map;
import java.util.Set;
@@ -89,8 +88,10 @@
}
@Override
- public Map<SkyKey, NodeEntry> getBatch(Iterable<SkyKey> keys) {
- return Maps.transformEntries(delegate.getBatch(keys), notifyingHelper.wrapEntry);
+ public Map<SkyKey, NodeEntry> getBatchForInvalidation(Iterable<SkyKey> keys) {
+ return Maps.transformEntries(
+ delegate.getBatchForInvalidation(keys),
+ notifyingHelper.wrapEntry);
}
}
@@ -114,24 +115,31 @@
}
@Override
- public Map<SkyKey, NodeEntry> createIfAbsentBatch(Iterable<SkyKey> keys) {
+ public Map<SkyKey, NodeEntry> createIfAbsentBatch(
+ @Nullable SkyKey requestor, Reason reason, Iterable<SkyKey> keys) {
for (SkyKey key : keys) {
notifyingHelper.graphListener.accept(key, EventType.CREATE_IF_ABSENT, Order.BEFORE, null);
}
- return Maps.transformEntries(delegate.createIfAbsentBatch(keys), notifyingHelper.wrapEntry);
+ return Maps.transformEntries(
+ delegate.createIfAbsentBatch(requestor, reason, keys),
+ notifyingHelper.wrapEntry);
}
@Override
public Map<SkyKey, NodeEntry> getBatchWithFieldHints(
- Iterable<SkyKey> keys, EnumSet<NodeEntryField> fields) {
+ @Nullable SkyKey requestor,
+ Reason reason,
+ Iterable<SkyKey> keys,
+ EnumSet<NodeEntryField> fields) {
return Maps.transformEntries(
- delegate.getBatchWithFieldHints(keys, fields), notifyingHelper.wrapEntry);
+ delegate.getBatchWithFieldHints(requestor, reason, keys, fields),
+ notifyingHelper.wrapEntry);
}
@Nullable
@Override
- public NodeEntry get(SkyKey key) {
- return notifyingHelper.wrapEntry(key, delegate.get(key));
+ public NodeEntry get(@Nullable SkyKey requestor, Reason reason, SkyKey key) {
+ return notifyingHelper.wrapEntry(key, delegate.get(requestor, reason, key));
}
}