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

Side by Side Diff: sdk/lib/io/mime_multipart_parser.dart

Issue 16125005: Make new StreamController be async by default. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Address review comments Created 7 years, 6 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
« no previous file with comments | « sdk/lib/io/io_sink.dart ('k') | sdk/lib/io/secure_server_socket.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 dart.io; 5 part of dart.io;
6 6
7 7
8 /** 8 /**
9 * A Mime Multipart class representing each part parsed by 9 * A Mime Multipart class representing each part parsed by
10 * [MimeMultipartTransformer]. The data is streamed in as it become available. 10 * [MimeMultipartTransformer]. The data is streamed in as it become available.
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
94 void _resumeStream() { 94 void _resumeStream() {
95 _subscription.resume(); 95 _subscription.resume();
96 } 96 }
97 97
98 void _pauseStream() { 98 void _pauseStream() {
99 _subscription.pause(); 99 _subscription.pause();
100 } 100 }
101 101
102 Stream<MimeMultipart> bind(Stream<List<int>> stream) { 102 Stream<MimeMultipart> bind(Stream<List<int>> stream) {
103 _controller = new StreamController( 103 _controller = new StreamController(
104 sync: true,
104 onPause: _pauseStream, 105 onPause: _pauseStream,
105 onResume:_resumeStream, 106 onResume:_resumeStream,
106 onCancel: () { 107 onCancel: () {
107 _subscription.cancel(); 108 _subscription.cancel();
108 }, 109 },
109 onListen: () { 110 onListen: () {
110 _subscription = stream.listen( 111 _subscription = stream.listen(
111 (data) { 112 (data) {
112 assert(_buffer == null); 113 assert(_buffer == null);
113 _pauseStream(); 114 _pauseStream();
(...skipping 172 matching lines...) Expand 10 before | Expand all | Expand 10 after
286 // Start of new header field. 287 // Start of new header field.
287 _headerField.writeCharCode(_toLowerCase(byte)); 288 _headerField.writeCharCode(_toLowerCase(byte));
288 _state = _HEADER_FIELD; 289 _state = _HEADER_FIELD;
289 } 290 }
290 } 291 }
291 break; 292 break;
292 293
293 case _HEADER_ENDING: 294 case _HEADER_ENDING:
294 _expect(byte, _CharCode.LF); 295 _expect(byte, _CharCode.LF);
295 _multipartController = new StreamController( 296 _multipartController = new StreamController(
297 sync: true,
296 onPause: () { 298 onPause: () {
297 _pauseStream(); 299 _pauseStream();
298 }, 300 },
299 onResume: () { 301 onResume: () {
300 _resumeStream(); 302 _resumeStream();
301 _parse(); 303 _parse();
302 }); 304 });
303 _controller.add( 305 _controller.add(
304 new _MimeMultipart(_headers, _multipartController.stream)); 306 new _MimeMultipart(_headers, _multipartController.stream));
305 _headers = null; 307 _headers = null;
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
394 } 396 }
395 } 397 }
396 } 398 }
397 399
398 400
399 class MimeMultipartException implements Exception { 401 class MimeMultipartException implements Exception {
400 const MimeMultipartException([String this.message = ""]); 402 const MimeMultipartException([String this.message = ""]);
401 String toString() => "MimeMultipartException: $message"; 403 String toString() => "MimeMultipartException: $message";
402 final String message; 404 final String message;
403 } 405 }
OLDNEW
« no previous file with comments | « sdk/lib/io/io_sink.dart ('k') | sdk/lib/io/secure_server_socket.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698