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 part of dart.io; | 5 part of dart.io; |
6 | 6 |
7 /** | 7 /** |
8 * Exposes ZLib options for input parameters. | 8 * Exposes ZLib options for input parameters. |
9 * | 9 * |
10 * See http://www.zlib.net/manual.html for more documentation. | 10 * See http://www.zlib.net/manual.html for more documentation. |
(...skipping 344 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
355 * constructor. | 355 * constructor. |
356 */ | 356 */ |
357 List<int> convert(List<int> bytes) { | 357 List<int> convert(List<int> bytes) { |
358 _BufferSink sink = new _BufferSink(); | 358 _BufferSink sink = new _BufferSink(); |
359 startChunkedConversion(sink)..add(bytes)..close(); | 359 startChunkedConversion(sink)..add(bytes)..close(); |
360 return sink.builder.takeBytes(); | 360 return sink.builder.takeBytes(); |
361 } | 361 } |
362 | 362 |
363 /** | 363 /** |
364 * Start a chunked conversion using the options given to the [ZLibEncoder] | 364 * Start a chunked conversion using the options given to the [ZLibEncoder] |
365 * constructor. While it accepts any [ChunkedConversionSink] taking | 365 * constructor. While it accepts any [Sink] taking [List<int>]'s, |
366 * [List<int>]'s, the optimal sink to be passed as [sink] is a | 366 * the optimal sink to be passed as [sink] is a [ByteConversionSink]. |
367 * [ByteConversionSink]. | |
368 */ | 367 */ |
369 ByteConversionSink startChunkedConversion( | 368 ByteConversionSink startChunkedConversion(Sink<List<int>> sink) { |
370 ChunkedConversionSink<List<int>> sink) { | |
371 if (sink is! ByteConversionSink) { | 369 if (sink is! ByteConversionSink) { |
372 sink = new ByteConversionSink.from(sink); | 370 sink = new ByteConversionSink.from(sink); |
373 } | 371 } |
374 | |
375 return new _ZLibEncoderSink(sink, gzip, level, windowBits, memLevel, | 372 return new _ZLibEncoderSink(sink, gzip, level, windowBits, memLevel, |
376 strategy, dictionary, raw); | 373 strategy, dictionary, raw); |
377 } | 374 } |
378 } | 375 } |
379 | 376 |
380 | 377 |
381 /** | 378 /** |
382 * The [ZLibDecoder] is used by [ZLibCodec] and [GZipCodec] to decompress data. | 379 * The [ZLibDecoder] is used by [ZLibCodec] and [GZipCodec] to decompress data. |
383 */ | 380 */ |
384 class ZLibDecoder extends Converter<List<int>, List<int>> { | 381 class ZLibDecoder extends Converter<List<int>, List<int>> { |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
416 * Convert a list of bytes using the options given to the [ZLibDecoder] | 413 * Convert a list of bytes using the options given to the [ZLibDecoder] |
417 * constructor. | 414 * constructor. |
418 */ | 415 */ |
419 List<int> convert(List<int> bytes) { | 416 List<int> convert(List<int> bytes) { |
420 _BufferSink sink = new _BufferSink(); | 417 _BufferSink sink = new _BufferSink(); |
421 startChunkedConversion(sink)..add(bytes)..close(); | 418 startChunkedConversion(sink)..add(bytes)..close(); |
422 return sink.builder.takeBytes(); | 419 return sink.builder.takeBytes(); |
423 } | 420 } |
424 | 421 |
425 /** | 422 /** |
426 * Start a chunked conversion. While it accepts any [ChunkedConversionSink] | 423 * Start a chunked conversion. While it accepts any [Sink] |
427 * taking [List<int>]'s, the optimal sink to be passed as [sink] is a | 424 * taking [List<int>]'s, the optimal sink to be passed as [sink] is a |
428 * [ByteConversionSink]. | 425 * [ByteConversionSink]. |
429 */ | 426 */ |
430 ByteConversionSink startChunkedConversion( | 427 ByteConversionSink startChunkedConversion(Sink<List<int>> sink) { |
431 ChunkedConversionSink<List<int>> sink) { | |
432 if (sink is! ByteConversionSink) { | 428 if (sink is! ByteConversionSink) { |
433 sink = new ByteConversionSink.from(sink); | 429 sink = new ByteConversionSink.from(sink); |
434 } | 430 } |
435 return new _ZLibDecoderSink(sink, windowBits, dictionary, raw); | 431 return new _ZLibDecoderSink(sink, windowBits, dictionary, raw); |
436 } | 432 } |
437 } | 433 } |
438 | 434 |
439 | 435 |
440 class _BufferSink extends ByteConversionSink { | 436 class _BufferSink extends ByteConversionSink { |
441 final BytesBuilder builder = new BytesBuilder(); | 437 final BytesBuilder builder = new BytesBuilder(); |
(...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
590 } | 586 } |
591 | 587 |
592 void _validateZLibStrategy(int strategy) { | 588 void _validateZLibStrategy(int strategy) { |
593 const strategies = const <int>[ZLibOption.STRATEGY_FILTERED, | 589 const strategies = const <int>[ZLibOption.STRATEGY_FILTERED, |
594 ZLibOption.STRATEGY_HUFFMAN_ONLY, ZLibOption.STRATEGY_RLE, | 590 ZLibOption.STRATEGY_HUFFMAN_ONLY, ZLibOption.STRATEGY_RLE, |
595 ZLibOption.STRATEGY_FIXED, ZLibOption.STRATEGY_DEFAULT]; | 591 ZLibOption.STRATEGY_FIXED, ZLibOption.STRATEGY_DEFAULT]; |
596 if (strategies.indexOf(strategy) == -1) { | 592 if (strategies.indexOf(strategy) == -1) { |
597 throw new ArgumentError("Unsupported 'strategy'"); | 593 throw new ArgumentError("Unsupported 'strategy'"); |
598 } | 594 } |
599 } | 595 } |
OLD | NEW |