Index: lib/src/io.dart |
diff --git a/lib/src/io.dart b/lib/src/io.dart |
deleted file mode 100644 |
index ff8761b7bbb788e1c166e8e8ab1b17ad91c8bbb7..0000000000000000000000000000000000000000 |
--- a/lib/src/io.dart |
+++ /dev/null |
@@ -1,92 +0,0 @@ |
-// Copyright (c) 2015, 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. |
- |
-// dart:io based strategy for loading resources. |
- |
-import "dart:async" show Future, Stream; |
-import "dart:convert" show Encoding, LATIN1, UTF8; |
-import "dart:io" show |
- File, HttpClient, HttpClientResponse, HttpClientRequest, HttpHeaders; |
-import "dart:typed_data" show Uint8List; |
-import "package:typed_data/typed_buffers.dart" show Uint8Buffer; |
- |
-/// Read the bytes of a URI as a stream of bytes. |
-Stream<List<int>> readAsStream(Uri uri) async* { |
- if (uri.scheme == "file") { |
- yield* new File.fromUri(uri).openRead(); |
- return; |
- } |
- if (uri.scheme == "http" || uri.scheme == "https") { |
- HttpClientResponse response = await _httpGet(uri); |
- yield* response; |
- return; |
- } |
- if (uri.scheme == "data") { |
- yield uri.data.contentAsBytes(); |
- return; |
- } |
- throw new UnsupportedError("Unsupported scheme: $uri"); |
-} |
- |
-/// Read the bytes of a URI as a list of bytes. |
-Future<List<int>> readAsBytes(Uri uri) async { |
- if (uri.scheme == "file") { |
- return new File.fromUri(uri).readAsBytes(); |
- } |
- if (uri.scheme == "http" || uri.scheme == "https") { |
- HttpClientResponse response = await _httpGet(uri); |
- int length = response.contentLength; |
- if (length < 0) length = 0; |
- var buffer = new Uint8Buffer(length); |
- await for (var bytes in response) { |
- buffer.addAll(bytes); |
- } |
- return buffer.toList(); |
- } |
- if (uri.scheme == "data") { |
- return uri.data.contentAsBytes(); |
- } |
- throw new UnsupportedError("Unsupported scheme: $uri"); |
-} |
- |
-/// Read the bytes of a URI as a string. |
-Future<String> readAsString(Uri uri, Encoding encoding) async { |
- if (uri.scheme == "file") { |
- if (encoding == null) encoding = UTF8; |
- return new File.fromUri(uri).readAsString(encoding: encoding); |
- } |
- if (uri.scheme == "http" || uri.scheme == "https") { |
- HttpClientRequest request = await new HttpClient().getUrl(uri); |
- // Prefer text/plain, text/* if possible, otherwise take whatever is there. |
- request.headers.set(HttpHeaders.ACCEPT, "text/plain, text/*, */*"); |
- if (encoding != null) { |
- request.headers.set(HttpHeaders.ACCEPT_CHARSET, encoding.name); |
- } |
- HttpClientResponse response = await request.close(); |
- encoding ??= Encoding.getByName(response.headers.contentType?.charset); |
- if (encoding == null || encoding == LATIN1) { |
- // Default to LATIN-1 if no encoding found. |
- // Special case LATIN-1 since it is common and doesn't need decoding. |
- int length = response.contentLength; |
- if (length < 0) length = 0; |
- var buffer = new Uint8Buffer(length); |
- await for (var bytes in response) { |
- buffer.addAll(bytes); |
- } |
- var byteList = new Uint8List.view(buffer.buffer, 0, buffer.length); |
- return new String.fromCharCodes(byteList); |
- } |
- return response.transform(encoding.decoder).join(); |
- } |
- if (uri.scheme == "data") { |
- return uri.data.contentAsString(encoding: encoding); |
- } |
- throw new UnsupportedError("Unsupported scheme: $uri"); |
-} |
- |
-Future<HttpClientResponse> _httpGet(Uri uri) async { |
- HttpClientRequest request = await new HttpClient().getUrl(uri); |
- request.headers.set(HttpHeaders.ACCEPT, "application/octet-stream, */*"); |
- return request.close(); |
-} |