OLD | NEW |
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, 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 $LIBRARYNAME; | 5 part of $LIBRARYNAME; |
6 | 6 |
7 $(ANNOTATIONS)$(NATIVESPEC)$(CLASS_MODIFIERS)class $CLASSNAME$EXTENDS$IMPLEMENTS
{ | 7 $(ANNOTATIONS)$(NATIVESPEC)$(CLASS_MODIFIERS)class $CLASSNAME$EXTENDS$IMPLEMENTS
{ |
8 | 8 |
9 @DomName('IDBObjectStore.add') | 9 @DomName('IDBObjectStore.add') |
10 Future add(value, [key]) { | 10 Future add(value, [key]) { |
(...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
130 } | 130 } |
131 | 131 |
132 return _createIndex(name, keyPath, options); | 132 return _createIndex(name, keyPath, options); |
133 } | 133 } |
134 | 134 |
135 $!MEMBERS | 135 $!MEMBERS |
136 | 136 |
137 /** | 137 /** |
138 * Helper for iterating over cursors in a request. | 138 * Helper for iterating over cursors in a request. |
139 */ | 139 */ |
140 static Stream<Cursor> _cursorStreamFromResult(Request request, | 140 static Stream/*<T>*/ _cursorStreamFromResult/*<T extends Cursor>*/(Request req
uest, |
141 bool autoAdvance) { | 141 bool autoAdvance) { |
142 // TODO: need to guarantee that the controller provides the values | 142 // TODO: need to guarantee that the controller provides the values |
143 // immediately as waiting until the next tick will cause the transaction to | 143 // immediately as waiting until the next tick will cause the transaction to |
144 // close. | 144 // close. |
145 var controller = new StreamController(sync: true); | 145 var controller = new StreamController/*<T>*/(sync: true); |
146 | 146 |
147 //TODO: Report stacktrace once issue 4061 is resolved. | 147 //TODO: Report stacktrace once issue 4061 is resolved. |
148 request.onError.listen(controller.addError); | 148 request.onError.listen(controller.addError); |
149 | 149 |
150 request.onSuccess.listen((e) { | 150 request.onSuccess.listen((e) { |
151 Cursor cursor = request.result; | 151 var cursor = request.result as dynamic /*=T*/; |
152 if (cursor == null) { | 152 if (cursor == null) { |
153 controller.close(); | 153 controller.close(); |
154 } else { | 154 } else { |
155 controller.add(cursor); | 155 controller.add(cursor); |
156 if (autoAdvance == true && controller.hasListener) { | 156 if (autoAdvance == true && controller.hasListener) { |
157 cursor.next(); | 157 cursor.next(); |
158 } | 158 } |
159 } | 159 } |
160 }); | 160 }); |
161 return controller.stream; | 161 return controller.stream; |
162 } | 162 } |
163 } | 163 } |
OLD | NEW |