Index: lib/src/delegates.dart |
diff --git a/lib/src/delegates.dart b/lib/src/delegates.dart |
new file mode 100644 |
index 0000000000000000000000000000000000000000..7c514c3e7305226ecf54aa8ae799d2c4432a17d4 |
--- /dev/null |
+++ b/lib/src/delegates.dart |
@@ -0,0 +1,47 @@ |
+// Copyright (c) 2015, 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 async.streams.stream_subscription; |
+ |
+import 'dart:async'; |
+ |
+/// Simple delegating wrapper around a [StreamSubscription]. |
+/// |
+/// Subclasses can override individual methods. |
+class DelegatingStreamSubscription<T> implements StreamSubscription<T> { |
+ final StreamSubscription _source; |
+ |
+ DelegatingStreamSubscription(StreamSubscription subscription) |
+ : _source = subscription; |
+ |
+ void onData(void handleData(T data)) { |
+ _source.onData(handleData); |
+ } |
+ |
+ void onError(Function handleError) { |
+ _source.onError(handleError); |
+ } |
+ |
+ void onDone(void handleDone()) { |
+ _source.onDone(handleDone); |
+ } |
+ |
+ void pause([Future resumeFuture]) { |
+ _source.pause(resumeFuture); |
+ } |
+ |
+ void resume() { |
+ _source.resume(); |
+ } |
+ |
+ Future cancel() { |
+ return _source.cancel(); |
+ } |
+ |
+ Future asFuture([futureValue]) { |
+ return _source.asFuture(futureValue); |
+ } |
+ |
+ bool get isPaused => _source.isPaused; |
+} |