Chromium Code Reviews| Index: runtime/bin/vmservice/vmservice.dart |
| diff --git a/runtime/bin/vmservice/vmservice.dart b/runtime/bin/vmservice/vmservice.dart |
| index e074e9a4d4b6663c78fa2652a7c9f2ca5fbd48c4..b8949f52e1c4e44cf0ef6fd98ed96e52287dbcad 100644 |
| --- a/runtime/bin/vmservice/vmservice.dart |
| +++ b/runtime/bin/vmservice/vmservice.dart |
| @@ -6,16 +6,49 @@ library vmservice; |
| import 'dart:async'; |
| import 'dart:json' as JSON; |
| +// TODO(johnmccutchan): Factor 'dart:io' dependency into separate library. |
|
siva
2013/07/19 17:41:16
Can we open an issue and add that issue number her
Cutch
2013/07/19 18:15:02
Done.
|
| import 'dart:io'; |
| import 'dart:isolate'; |
| import 'dart:typed_data'; |
| import 'dart:utf' as UTF; |
| -void messageHandler(message, SendPort replyTo) { |
| -} |
| +class VmService { |
| + static VmService _instance; |
| + RunningIsolates runningIsolates = new RunningIsolates(); |
| + |
| + void controlMessageHandler(int code, SendPort sp) { |
| + switch (code) { |
| + case Constants.isolateStartupMessageId: |
| + runningIsolates.isolateStartup(sp); |
| + break; |
| + case Constants.isolateShutdownMessageId: |
| + runningIsolates.isolateShutdown(sp); |
| + break; |
| + } |
| + } |
| + |
| + |
| + void messageHandler(message, SendPort replyTo) { |
| + if (message is List && message.length == 2) { |
| + controlMessageHandler(message[0], message[1]); |
| + } |
| + } |
| -main() { |
| - port.receive(messageHandler); |
| + VmService._internal() { |
| + port.receive(messageHandler); |
| + } |
| + |
| + |
| + factory VmService() { |
| + if (VmService._instance == null) { |
| + VmService._instance = new VmService._internal(); |
| + } |
| + return _instance; |
| + } |
| } |
| + |
| +void sendServiceMessage(SendPort sp, ReceivePort rp, Object m) |
| + native "SendServiceMessage"; |
| + |