Index: tests/lib/async/event_helper.dart |
diff --git a/tests/lib/async/event_helper.dart b/tests/lib/async/event_helper.dart |
deleted file mode 100644 |
index d7ff0f46e378cfa55bb482b91b0e87fe80fc0218..0000000000000000000000000000000000000000 |
--- a/tests/lib/async/event_helper.dart |
+++ /dev/null |
@@ -1,184 +0,0 @@ |
-// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
-// for details. All rights reserved. Use of this source code is governed by a |
-// BSD-style license that can be found in the LICENSE file. |
- |
-library event_helper; |
- |
-import 'dart:async'; |
- |
-abstract class Event { |
- void replay(EventSink sink); |
-} |
- |
-class DataEvent implements Event { |
- final data; |
- |
- DataEvent(this.data); |
- |
- void replay(EventSink sink) { |
- sink.add(data); |
- } |
- |
- int get hashCode => data.hashCode; |
- |
- bool operator ==(Object other) { |
- if (other is! DataEvent) return false; |
- DataEvent otherEvent = other; |
- return data == otherEvent.data; |
- } |
- |
- String toString() => "DataEvent: $data"; |
-} |
- |
-class ErrorEvent implements Event { |
- final error; |
- |
- ErrorEvent(this.error); |
- |
- void replay(EventSink sink) { |
- sink.addError(error); |
- } |
- |
- int get hashCode => error.error.hashCode; |
- |
- bool operator ==(Object other) { |
- if (other is! ErrorEvent) return false; |
- ErrorEvent otherEvent = other; |
- return error == otherEvent.error; |
- } |
- |
- String toString() => "ErrorEvent: ${error}"; |
-} |
- |
-class DoneEvent implements Event { |
- const DoneEvent(); |
- |
- void replay(EventSink sink) { |
- sink.close(); |
- } |
- |
- int get hashCode => 42; |
- |
- bool operator ==(Object other) => other is DoneEvent; |
- |
- String toString() => "DoneEvent"; |
-} |
- |
-/** Collector of events. */ |
-class Events implements EventSink { |
- final List<Event> events = []; |
- bool trace = false; |
- Completer onDoneSignal = new Completer(); |
- |
- Events(); |
- |
- Events.fromIterable(Iterable iterable) { |
- for (var value in iterable) add(value); |
- close(); |
- } |
- |
- /** Capture events from a stream into a new [Events] object. */ |
- factory Events.capture(Stream stream, {bool cancelOnError}) = CaptureEvents; |
- |
- // EventSink interface. |
- void add(var value) { |
- if (trace) print("Events#$hashCode: add($value)"); |
- events.add(new DataEvent(value)); |
- } |
- |
- void addError(error, [StackTrace stackTrace]) { |
- if (trace) print("Events#$hashCode: addError($error)"); |
- events.add(new ErrorEvent(error)); |
- } |
- |
- void close() { |
- if (trace) print("Events#$hashCode: close()"); |
- events.add(const DoneEvent()); |
- onDoneSignal.complete(); |
- } |
- |
- /** |
- * Error shorthand, for writing events manually. |
- */ |
- void error(var value, [StackTrace stackTrace]) { |
- addError(value, stackTrace); |
- } |
- |
- /** Replay the captured events on a sink. */ |
- void replay(EventSink sink) { |
- for (int i = 0; i < events.length; i++) { |
- events[i].replay(sink); |
- } |
- } |
- |
- /** |
- * Create a new [Events] with the same captured events. |
- * |
- * This does not copy a subscription. |
- */ |
- Events copy() { |
- Events result = new Events(); |
- replay(result); |
- return result; |
- } |
- |
- // Operations that only work when there is a subscription feeding the Events. |
- |
- /** |
- * Pauses the subscription that feeds this [Events]. |
- * |
- * Should only be used when there is a subscription. That is, after a |
- * call to [subscribeTo]. |
- */ |
- void pause([Future resumeSignal]) { |
- throw new StateError("Not capturing events."); |
- } |
- |
- /** Resumes after a call to [pause]. */ |
- void resume() { |
- throw new StateError("Not capturing events."); |
- } |
- |
- /** |
- * Sets an action to be called when this [Events] receives a 'done' event. |
- * |
- * The action will also be called if capturing events from a stream with |
- * `cancelOnError` set to true and receiving an error. |
- */ |
- void onDone(void action()) { |
- onDoneSignal.future.whenComplete(action); |
- } |
-} |
- |
-class CaptureEvents extends Events { |
- StreamSubscription subscription; |
- bool cancelOnError = false; |
- |
- CaptureEvents(Stream stream, {bool cancelOnError: false}) { |
- this.cancelOnError = cancelOnError; |
- subscription = stream.listen(add, |
- onError: addError, onDone: close, cancelOnError: cancelOnError); |
- } |
- |
- void addError(error, [stackTrace]) { |
- super.addError(error, stackTrace); |
- if (cancelOnError) { |
- onDoneSignal.complete(); |
- } |
- } |
- |
- void pause([Future resumeSignal]) { |
- if (trace) print("Events#$hashCode: pause"); |
- subscription.pause(resumeSignal); |
- } |
- |
- void resume() { |
- if (trace) print("Events#$hashCode: resume"); |
- subscription.resume(); |
- } |
- |
- void onDone(void action()) { |
- if (trace) print("Events#$hashCode: onDone"); |
- super.onDone(action); |
- } |
-} |