OLD | NEW |
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 library barback.utils.stream_pool; | 5 library barback.stream_pool; |
6 | 6 |
7 import 'dart:async'; | 7 import 'dart:async'; |
8 | 8 |
9 /// A pool of streams whose events are unified and emitted through a central | 9 /// A pool of streams whose events are unified and emitted through a central |
10 /// stream. | 10 /// stream. |
11 class StreamPool<T> { | 11 class StreamPool<T> { |
12 /// The stream through which all events from streams in the pool are emitted. | 12 /// The stream through which all events from streams in the pool are emitted. |
13 Stream<T> get stream => _controller.stream; | 13 Stream<T> get stream => _controller.stream; |
14 final StreamController<T> _controller; | 14 final StreamController<T> _controller; |
15 | 15 |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
57 | 57 |
58 /// Removes all streams from this pool and closes [stream]. | 58 /// Removes all streams from this pool and closes [stream]. |
59 void close() { | 59 void close() { |
60 for (var subscription in _subscriptions.values) { | 60 for (var subscription in _subscriptions.values) { |
61 subscription.cancel(); | 61 subscription.cancel(); |
62 } | 62 } |
63 _subscriptions.clear(); | 63 _subscriptions.clear(); |
64 _controller.close(); | 64 _controller.close(); |
65 } | 65 } |
66 } | 66 } |
OLD | NEW |