diff options
Diffstat (limited to 'src/main/java/com/google/devtools/build/skyframe/InMemoryGraph.java')
-rw-r--r-- | src/main/java/com/google/devtools/build/skyframe/InMemoryGraph.java | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/main/java/com/google/devtools/build/skyframe/InMemoryGraph.java b/src/main/java/com/google/devtools/build/skyframe/InMemoryGraph.java index 28ba49a7ea..4f617b1c6f 100644 --- a/src/main/java/com/google/devtools/build/skyframe/InMemoryGraph.java +++ b/src/main/java/com/google/devtools/build/skyframe/InMemoryGraph.java @@ -17,11 +17,13 @@ import com.google.common.annotations.VisibleForTesting; import com.google.common.base.Function; import com.google.common.base.Predicate; import com.google.common.base.Predicates; +import com.google.common.collect.ImmutableMap; import com.google.common.collect.MapMaker; import com.google.common.collect.Maps; import java.util.Collections; import java.util.Map; +import java.util.Set; import java.util.concurrent.ConcurrentMap; import javax.annotation.Nullable; @@ -57,6 +59,18 @@ public class InMemoryGraph implements ProcessableGraph { } @Override + public Map<SkyKey, NodeEntry> getBatch(Set<SkyKey> keys) { + ImmutableMap.Builder<SkyKey, NodeEntry> builder = ImmutableMap.builder(); + for (SkyKey key : keys) { + NodeEntry entry = get(key); + if (entry != null) { + builder.put(key, entry); + } + } + return builder.build(); + } + + @Override public NodeEntry createIfAbsent(SkyKey key) { NodeEntry newval = keepEdges ? new InMemoryNodeEntry() : new EdgelessInMemoryNodeEntry(); NodeEntry oldval = nodeMap.putIfAbsent(key, newval); |