| // 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._vmservice; |
| |
| class RunningIsolate implements MessageRouter { |
| final int portId; |
| final SendPort sendPort; |
| final String name; |
| final pendingMessagesReceivePorts = <RawReceivePort>[]; |
| |
| RunningIsolate(this.portId, this.sendPort, this.name); |
| |
| void onIsolateExit() { |
| pendingMessagesReceivePorts.forEach((port) { |
| (port as RawReceivePort).close(); |
| }); |
| } |
| |
| String get serviceId => 'isolates/$portId'; |
| |
| @override |
| Future<Response> routeRequest(VMService service, Message message) { |
| // Send message to isolate. |
| return message.sendToIsolate(pendingMessagesReceivePorts, sendPort); |
| } |
| |
| @override |
| void routeResponse(Message message) {} |
| } |