| Index: pkg/dev_compiler/tool/input_sdk/lib/io/io_resource_info.dart
|
| diff --git a/pkg/dev_compiler/tool/input_sdk/lib/io/io_resource_info.dart b/pkg/dev_compiler/tool/input_sdk/lib/io/io_resource_info.dart
|
| deleted file mode 100644
|
| index 7cea2312493e5bd29eb6d4798d0cd5838717d79d..0000000000000000000000000000000000000000
|
| --- a/pkg/dev_compiler/tool/input_sdk/lib/io/io_resource_info.dart
|
| +++ /dev/null
|
| @@ -1,283 +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.
|
| -
|
| -part of dart.io;
|
| -
|
| -abstract class _IOResourceInfo {
|
| - final String type;
|
| - final int id;
|
| - String get name;
|
| - static int _count = 0;
|
| -
|
| - static final Stopwatch _sw = new Stopwatch()..start();
|
| - static final _startTime = new DateTime.now().millisecondsSinceEpoch;
|
| -
|
| - static double get timestamp => _startTime + _sw.elapsedMicroseconds/1000;
|
| -
|
| - _IOResourceInfo(this.type) : id = _IOResourceInfo.getNextID();
|
| -
|
| - /// Get the full set of values for a specific implementation. This is normally
|
| - /// looked up based on an id from a referenceValueMap.
|
| - Map<String, String> get fullValueMap;
|
| -
|
| - /// The reference map, used to return a list of values, e.g., getting
|
| - /// all open sockets. The structure of this is shared among all subclasses.
|
| - Map<String, String> get referenceValueMap =>
|
| - {
|
| - // The type for a reference object is prefixed with @ in observatory.
|
| - 'type': '@$type',
|
| - 'id': id,
|
| - 'name': name,
|
| - };
|
| -
|
| - static int getNextID() => _count++;
|
| -}
|
| -
|
| -abstract class _ReadWriteResourceInfo extends _IOResourceInfo {
|
| - int totalRead;
|
| - int totalWritten;
|
| - int readCount;
|
| - int writeCount;
|
| - double lastRead;
|
| - double lastWrite;
|
| -
|
| - // Not all call sites use this. In some cases, e.g., a socket, a read does
|
| - // not always mean that we actually read some bytes (we may do a read to see
|
| - // if there are some bytes available).
|
| - void addRead(int bytes) {
|
| - totalRead += bytes;
|
| - readCount++;
|
| - lastRead = _IOResourceInfo.timestamp;
|
| - }
|
| -
|
| - // In cases where we read but did not neccesarily get any bytes, use this to
|
| - // update the readCount and timestamp. Manually update totalRead if any bytes
|
| - // where acutally read.
|
| - void didRead() { addRead(0); }
|
| -
|
| - void addWrite(int bytes) {
|
| - totalWritten += bytes;
|
| - writeCount++;
|
| - lastWrite = _IOResourceInfo.timestamp;
|
| - }
|
| -
|
| - _ReadWriteResourceInfo(String type) :
|
| - totalRead = 0,
|
| - totalWritten = 0,
|
| - readCount = 0,
|
| - writeCount = 0,
|
| - lastRead = 0.0,
|
| - lastWrite = 0.0,
|
| - super(type);
|
| -
|
| - Map<String, String> get fullValueMap =>
|
| - {
|
| - 'type': type,
|
| - 'id': id,
|
| - 'name': name,
|
| - 'totalRead': totalRead,
|
| - 'totalWritten': totalWritten,
|
| - 'readCount': readCount,
|
| - 'writeCount': writeCount,
|
| - 'lastRead': lastRead,
|
| - 'lastWrite': lastWrite
|
| - };
|
| -}
|
| -
|
| -class _FileResourceInfo extends _ReadWriteResourceInfo {
|
| - static const String TYPE = '_file';
|
| -
|
| - final file;
|
| -
|
| - static Map<int, _FileResourceInfo> openFiles =
|
| - new Map<int, _FileResourceInfo>();
|
| -
|
| - _FileResourceInfo(this.file) : super(TYPE) {
|
| - FileOpened(this);
|
| - }
|
| -
|
| - static FileOpened(_FileResourceInfo info) {
|
| - assert(!openFiles.containsKey(info.id));
|
| - openFiles[info.id] = info;
|
| - }
|
| -
|
| - static FileClosed(_FileResourceInfo info) {
|
| - assert(openFiles.containsKey(info.id));
|
| - openFiles.remove(info.id);
|
| - }
|
| -
|
| - static Iterable<Map<String, String>> getOpenFilesList() {
|
| - return new List.from(openFiles.values.map((e) => e.referenceValueMap));
|
| - }
|
| -
|
| - static Future<ServiceExtensionResponse> getOpenFiles(function, params) {
|
| - assert(function == 'ext.dart.io.getOpenFiles');
|
| - var data = {'type': '_openfiles', 'data': getOpenFilesList()};
|
| - var json = JSON.encode(data);
|
| - return new Future.value(new ServiceExtensionResponse.result(json));
|
| - }
|
| -
|
| - Map<String, String> getFileInfoMap() {
|
| - var result = fullValueMap;
|
| - return result;
|
| - }
|
| -
|
| - static Future<ServiceExtensionResponse> getFileInfoMapByID(function, params) {
|
| - assert(params.containsKey('id'));
|
| - var id = int.parse(params['id']);
|
| - var result =
|
| - openFiles.containsKey(id) ? openFiles[id].getFileInfoMap() : {};
|
| - var json = JSON.encode(result);
|
| - return new Future.value(new ServiceExtensionResponse.result(json));
|
| - }
|
| -
|
| - String get name {
|
| - return '${file.path}';
|
| - }
|
| -}
|
| -
|
| -class _ProcessResourceInfo extends _IOResourceInfo{
|
| - static const String TYPE = '_process';
|
| - final process;
|
| - final double startedAt;
|
| -
|
| - static Map<int, _ProcessResourceInfo> startedProcesses =
|
| - new Map<int, _ProcessResourceInfo>();
|
| -
|
| - _ProcessResourceInfo(this.process) :
|
| - startedAt = _IOResourceInfo.timestamp,
|
| - super(TYPE) {
|
| - ProcessStarted(this);
|
| - }
|
| -
|
| - String get name => process._path;
|
| -
|
| - void stopped() { ProcessStopped(this); }
|
| -
|
| - Map<String, String> get fullValueMap =>
|
| - {
|
| - 'type': type,
|
| - 'id': id,
|
| - 'name': name,
|
| - 'pid': process.pid,
|
| - 'startedAt': startedAt,
|
| - 'arguments': process._arguments,
|
| - 'workingDirectory':
|
| - process._workingDirectory == null ? '.' : process._workingDirectory,
|
| - };
|
| -
|
| - static ProcessStarted(_ProcessResourceInfo info) {
|
| - assert(!startedProcesses.containsKey(info.id));
|
| - startedProcesses[info.id] = info;
|
| - }
|
| -
|
| - static ProcessStopped(_ProcessResourceInfo info) {
|
| - assert(startedProcesses.containsKey(info.id));
|
| - startedProcesses.remove(info.id);
|
| - }
|
| -
|
| - static Iterable<Map<String, String>> getStartedProcessesList() =>
|
| - new List.from(startedProcesses.values.map((e) => e.referenceValueMap));
|
| -
|
| - static Future<ServiceExtensionResponse> getStartedProcesses(
|
| - String function, Map<String, String> params) {
|
| - assert(function == 'ext.dart.io.getProcesses');
|
| - var data = {'type': '_startedprocesses', 'data': getStartedProcessesList()};
|
| - var json = JSON.encode(data);
|
| - return new Future.value(new ServiceExtensionResponse.result(json));
|
| - }
|
| -
|
| - static Future<ServiceExtensionResponse> getProcessInfoMapById(
|
| - String function, Map<String, String> params) {
|
| - var id = int.parse(params['id']);
|
| - var result = startedProcesses.containsKey(id)
|
| - ? startedProcesses[id].fullValueMap
|
| - : {};
|
| - var json = JSON.encode(result);
|
| - return new Future.value(new ServiceExtensionResponse.result(json));
|
| - }
|
| -}
|
| -
|
| -class _SocketResourceInfo extends _ReadWriteResourceInfo {
|
| - static const String TCP_STRING = 'TCP';
|
| - static const String UDP_STRING = 'UDP';
|
| - static const String TYPE = '_socket';
|
| -
|
| - final socket;
|
| -
|
| - static Map<int, _SocketResourceInfo> openSockets =
|
| - new Map<int, _SocketResourceInfo>();
|
| -
|
| - _SocketResourceInfo(this.socket) : super(TYPE) {
|
| - SocketOpened(this);
|
| - }
|
| -
|
| - String get name {
|
| - if (socket.isListening) {
|
| - return 'listening:${socket.address.host}:${socket.port}';
|
| - }
|
| - var remote = '';
|
| - try {
|
| - var remoteHost = socket.remoteAddress.host;
|
| - var remotePort = socket.remotePort;
|
| - remote = ' -> $remoteHost:$remotePort';
|
| - } catch (e) { } // ignored if we can't get the information
|
| - return '${socket.address.host}:${socket.port}$remote';
|
| - }
|
| -
|
| - static Iterable<Map<String, String>> getOpenSocketsList() {
|
| - return new List.from(openSockets.values.map((e) => e.referenceValueMap));
|
| - }
|
| -
|
| - Map<String, String> getSocketInfoMap() {
|
| - var result = fullValueMap;
|
| - result['socketType'] = socket.isTcp ? TCP_STRING : UDP_STRING;
|
| - result['listening'] = socket.isListening;
|
| - result['host'] = socket.address.host;
|
| - result['port'] = socket.port;
|
| - if (!socket.isListening) {
|
| - try {
|
| - result['remoteHost'] = socket.remoteAddress.host;
|
| - result['remotePort'] = socket.remotePort;
|
| - } catch (e) {
|
| - // UDP.
|
| - result['remotePort'] = 'NA';
|
| - result['remoteHost'] = 'NA';
|
| - }
|
| - } else {
|
| - result['remotePort'] = 'NA';
|
| - result['remoteHost'] = 'NA';
|
| - }
|
| - result['addressType'] = socket.address.type.name;
|
| - return result;
|
| - }
|
| -
|
| - static Future<ServiceExtensionResponse> getSocketInfoMapByID(
|
| - String function, Map<String, String> params) {
|
| - assert(params.containsKey('id'));
|
| - var id = int.parse(params['id']);
|
| - var result =
|
| - openSockets.containsKey(id) ? openSockets[id].getSocketInfoMap() : {};
|
| - var json = JSON.encode(result);
|
| - return new Future.value(new ServiceExtensionResponse.result(json));
|
| - }
|
| -
|
| - static Future<ServiceExtensionResponse> getOpenSockets(function, params) {
|
| - assert(function == 'ext.dart.io.getOpenSockets');
|
| - var data = {'type': '_opensockets', 'data': getOpenSocketsList()};
|
| - var json = JSON.encode(data);
|
| - return new Future.value(new ServiceExtensionResponse.result(json));
|
| - }
|
| -
|
| - static SocketOpened(_SocketResourceInfo info) {
|
| - assert(!openSockets.containsKey(info.id));
|
| - openSockets[info.id] = info;
|
| - }
|
| -
|
| - static SocketClosed(_SocketResourceInfo info) {
|
| - assert(openSockets.containsKey(info.id));
|
| - openSockets.remove(info.id);
|
| - }
|
| -
|
| -}
|
|
|