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

Unified Diff: pkg/dev_compiler/tool/input_sdk/lib/convert/byte_conversion.dart

Issue 2698353003: unfork DDC's copy of most SDK libraries (Closed)
Patch Set: revert core_patch Created 3 years, 10 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 side-by-side diff with in-line comments
Download patch
Index: pkg/dev_compiler/tool/input_sdk/lib/convert/byte_conversion.dart
diff --git a/pkg/dev_compiler/tool/input_sdk/lib/convert/byte_conversion.dart b/pkg/dev_compiler/tool/input_sdk/lib/convert/byte_conversion.dart
deleted file mode 100644
index 4c1ede46e91026579325360826b5bcbf31d5b2b7..0000000000000000000000000000000000000000
--- a/pkg/dev_compiler/tool/input_sdk/lib/convert/byte_conversion.dart
+++ /dev/null
@@ -1,116 +0,0 @@
-// Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-part of dart.convert;
-
-/**
- * The [ByteConversionSink] provides an interface for converters to
- * efficiently transmit byte data.
- *
- * Instead of limiting the interface to one non-chunked list of bytes it
- * accepts its input in chunks (themselves being lists of bytes).
- *
- * This abstract class will likely get more methods over time. Implementers are
- * urged to extend or mix in [ByteConversionSinkBase] to ensure that their
- * class covers the newly added methods.
- */
-abstract class ByteConversionSink extends ChunkedConversionSink<List<int>> {
- ByteConversionSink();
- factory ByteConversionSink.withCallback(void callback(List<int> accumulated))
- = _ByteCallbackSink;
- factory ByteConversionSink.from(Sink<List<int>> sink)
- = _ByteAdapterSink;
-
- /**
- * Adds the next [chunk] to `this`.
- *
- * Adds the bytes defined by [start] and [end]-exclusive to `this`.
- *
- * If [isLast] is `true` closes `this`.
- *
- * Contrary to `add` the given [chunk] must not be held onto. Once the method
- * returns, it is safe to overwrite the data in it.
- */
- void addSlice(List<int> chunk, int start, int end, bool isLast);
-
- // TODO(floitsch): add more methods:
- // - iterateBytes.
-}
-
-/**
- * This class provides a base-class for converters that need to accept byte
- * inputs.
- */
-abstract class ByteConversionSinkBase extends ByteConversionSink {
-
- void add(List<int> chunk);
- void close();
-
- void addSlice(List<int> chunk, int start, int end, bool isLast) {
- add(chunk.sublist(start, end));
- if (isLast) close();
- }
-}
-
-/**
- * This class adapts a simple [Sink] to a [ByteConversionSink].
- *
- * All additional methods of the [ByteConversionSink] (compared to the
- * ChunkedConversionSink) are redirected to the `add` method.
- */
-class _ByteAdapterSink extends ByteConversionSinkBase {
- final Sink<List<int>> _sink;
-
- _ByteAdapterSink(this._sink);
-
- void add(List<int> chunk) { _sink.add(chunk); }
- void close() { _sink.close(); }
-}
-
-/**
- * This class accumulates all chunks into one list of bytes
- * and invokes a callback when the sink is closed.
- *
- * This class can be used to terminate a chunked conversion.
- */
-class _ByteCallbackSink extends ByteConversionSinkBase {
- static const _INITIAL_BUFFER_SIZE = 1024;
-
- final _ChunkedConversionCallback<List<int>> _callback;
- List<int> _buffer = new Uint8List(_INITIAL_BUFFER_SIZE);
- int _bufferIndex = 0;
-
- _ByteCallbackSink(void callback(List<int> accumulated))
- : this._callback = callback;
-
- void add(Iterable<int> chunk) {
- int freeCount = _buffer.length - _bufferIndex;
- if (chunk.length > freeCount) {
- // Grow the buffer.
- int oldLength = _buffer.length;
- int newLength = _roundToPowerOf2(chunk.length + oldLength) * 2;
- List<int> grown = new Uint8List(newLength);
- grown.setRange(0, _buffer.length, _buffer);
- _buffer = grown;
- }
- _buffer.setRange(_bufferIndex, _bufferIndex + chunk.length, chunk);
- _bufferIndex += chunk.length;
- }
-
- static int _roundToPowerOf2(int v) {
- assert(v > 0);
- v--;
- v |= v >> 1;
- v |= v >> 2;
- v |= v >> 4;
- v |= v >> 8;
- v |= v >> 16;
- v++;
- return v;
- }
-
- void close() {
- _callback(_buffer.sublist(0, _bufferIndex));
- }
-}

Powered by Google App Engine
This is Rietveld 408576698