diff options
author | Klaus Aehlig <aehlig@google.com> | 2017-02-24 16:30:15 +0000 |
---|---|---|
committer | Yue Gan <yueg@google.com> | 2017-02-27 15:05:00 +0000 |
commit | 777b30d06700f76ba580715429f3663de3fa0529 (patch) | |
tree | d3abdc6f42d04256c486270add24e5b0c5d3abbd /src/main/java/com/google/devtools/build/lib/events/StoredEventHandler.java | |
parent | 25aa033ad5657a5cfa16e8307464648b9374be2d (diff) |
Provide more reporting options to SkyFunctions
With more specific information to be reported by Skyfunctions, e.g.,
to inform the build-event protocol on missing files, the EventHandler
interface is no longer enough. Therefore, provide an enriched context
for reporting events.
--
Change-Id: I2d06166fe4d5b9054e24ad8c752fafc039e3f9f8
Reviewed-on: https://cr.bazel.build/8794
PiperOrigin-RevId: 148463437
MOS_MIGRATED_REVID=148463437
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/events/StoredEventHandler.java')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/events/StoredEventHandler.java | 25 |
1 files changed, 15 insertions, 10 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/events/StoredEventHandler.java b/src/main/java/com/google/devtools/build/lib/events/StoredEventHandler.java index 9edea8d9eb..e68c5d2a6c 100644 --- a/src/main/java/com/google/devtools/build/lib/events/StoredEventHandler.java +++ b/src/main/java/com/google/devtools/build/lib/events/StoredEventHandler.java @@ -14,16 +14,14 @@ package com.google.devtools.build.lib.events; import com.google.common.collect.ImmutableList; - import java.util.ArrayList; import java.util.List; -/** - * Stores error and warning events, and later replays them. Thread-safe. - */ -public class StoredEventHandler implements EventHandler { +/** Stores error and warning events, and later replays them. Thread-safe. */ +public class StoredEventHandler implements ExtendedEventHandler { private final List<Event> events = new ArrayList<>(); + private final List<ExtendedEventHandler.Postable> posts = new ArrayList<>(); private boolean hasErrors; public synchronized ImmutableList<Event> getEvents() { @@ -32,7 +30,7 @@ public class StoredEventHandler implements EventHandler { /** Returns true if there are no stored events. */ public synchronized boolean isEmpty() { - return events.isEmpty(); + return events.isEmpty() && posts.isEmpty(); } @@ -42,11 +40,17 @@ public class StoredEventHandler implements EventHandler { events.add(e); } - /** - * Replay all events stored in this object on the given eventHandler, in the same order. - */ - public synchronized void replayOn(EventHandler eventHandler) { + @Override + public synchronized void post(ExtendedEventHandler.Postable e) { + posts.add(e); + } + + /** Replay all events stored in this object on the given eventHandler, in the same order. */ + public synchronized void replayOn(ExtendedEventHandler eventHandler) { Event.replayEventsOn(eventHandler, events); + for (ExtendedEventHandler.Postable obj : posts) { + eventHandler.post(obj); + } } /** @@ -58,6 +62,7 @@ public class StoredEventHandler implements EventHandler { public synchronized void clear() { events.clear(); + posts.clear(); hasErrors = false; } } |