Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(76)

Side by Side Diff: tools/dom/src/EventStreamProvider.dart

Issue 14237002: Add StreamSubscription.asFuture. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 part of html; 5 part of html;
6 6
7 /** 7 /**
8 * Adapter for exposing DOM events as Dart streams. 8 * Adapter for exposing DOM events as Dart streams.
9 */ 9 */
10 class _EventStream<T extends Event> extends Stream<T> { 10 class _EventStream<T extends Event> extends Stream<T> {
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
90 if (_onData != null && !_paused) { 90 if (_onData != null && !_paused) {
91 _target.$dom_addEventListener(_eventType, _onData, _useCapture); 91 _target.$dom_addEventListener(_eventType, _onData, _useCapture);
92 } 92 }
93 } 93 }
94 94
95 void _unlisten() { 95 void _unlisten() {
96 if (_onData != null) { 96 if (_onData != null) {
97 _target.$dom_removeEventListener(_eventType, _onData, _useCapture); 97 _target.$dom_removeEventListener(_eventType, _onData, _useCapture);
98 } 98 }
99 } 99 }
100
101 Future asFuture([var futureValue]) {
102 // We just need a future that will never succeed or fail.
103 Completer completer = new Completer();
104 return completer.future;
105 }
100 } 106 }
101 107
102 108
103 /** 109 /**
104 * A factory to expose DOM events as Streams. 110 * A factory to expose DOM events as Streams.
105 */ 111 */
106 class EventStreamProvider<T extends Event> { 112 class EventStreamProvider<T extends Event> {
107 final String _eventType; 113 final String _eventType;
108 114
109 const EventStreamProvider(this._eventType); 115 const EventStreamProvider(this._eventType);
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
150 const _CustomEventStreamProvider(this._eventTypeGetter); 156 const _CustomEventStreamProvider(this._eventTypeGetter);
151 157
152 Stream<T> forTarget(EventTarget e, {bool useCapture: false}) { 158 Stream<T> forTarget(EventTarget e, {bool useCapture: false}) {
153 return new _EventStream(e, _eventTypeGetter(e), useCapture); 159 return new _EventStream(e, _eventTypeGetter(e), useCapture);
154 } 160 }
155 161
156 String getEventType(EventTarget target) { 162 String getEventType(EventTarget target) {
157 return _eventTypeGetter(target); 163 return _eventTypeGetter(target);
158 } 164 }
159 } 165 }
OLDNEW
« sdk/lib/async/stream_impl.dart ('K') | « tests/lib/async/stream_subscription_as_future_test.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698