Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 part of vmservice; | 5 part of vmservice; |
| 6 | 6 |
| 7 class Message { | 7 class Message { |
| 8 final Completer _completer = new Completer.sync(); | 8 final Completer _completer = new Completer.sync(); |
| 9 bool get completed => _completer.isCompleted; | 9 bool get completed => _completer.isCompleted; |
| 10 /// Future of response. | 10 /// Future of response. |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 54 params.addAll(map['options']); | 54 params.addAll(map['options']); |
| 55 } | 55 } |
| 56 } | 56 } |
| 57 | 57 |
| 58 dynamic toJson() { | 58 dynamic toJson() { |
| 59 return { | 59 return { |
| 60 'path': path, | 60 'path': path, |
| 61 'params': params | 61 'params': params |
| 62 }; | 62 }; |
| 63 } | 63 } |
| 64 | 64 |
|
turnidge
2015/02/03 21:09:35
Comment about why
Cutch
2015/02/03 21:35:53
Done.
| |
| 65 List _makeAllString(List list) { | |
| 66 if (list == null) { | |
| 67 return null; | |
| 68 } | |
| 69 for (var i = 0; i < list.length; i++) { | |
| 70 if (list[i] is String) { | |
| 71 continue; | |
| 72 } | |
| 73 list[i] = list[i].toString(); | |
| 74 } | |
| 75 return list; | |
| 76 } | |
| 77 | |
| 65 Future<String> send(SendPort sendPort) { | 78 Future<String> send(SendPort sendPort) { |
| 66 final receivePort = new RawReceivePort(); | 79 final receivePort = new RawReceivePort(); |
| 67 receivePort.handler = (value) { | 80 receivePort.handler = (value) { |
| 68 receivePort.close(); | 81 receivePort.close(); |
| 69 if (value is Exception) { | 82 if (value is Exception) { |
| 70 _completer.completeError(value); | 83 _completer.completeError(value); |
| 71 } else { | 84 } else { |
| 72 _completer.complete(value); | 85 _completer.complete(value); |
| 73 } | 86 } |
| 74 }; | 87 }; |
| 75 var keys = params.keys.toList(growable:false); | 88 var keys = _makeAllString(params.keys.toList(growable:false)); |
| 76 var values = params.values.toList(growable:false); | 89 var values = _makeAllString(params.values.toList(growable:false)); |
| 77 var request = new List(5) | 90 var request = new List(5) |
| 78 ..[0] = 0 // Make room for OOB message type. | 91 ..[0] = 0 // Make room for OOB message type. |
| 79 ..[1] = receivePort.sendPort | 92 ..[1] = receivePort.sendPort |
| 80 ..[2] = (isOld ? path : method) | 93 ..[2] = (isOld ? path : method) |
| 81 ..[3] = keys | 94 ..[3] = keys |
| 82 ..[4] = values; | 95 ..[4] = values; |
| 83 sendIsolateServiceMessage(sendPort, request); | 96 sendIsolateServiceMessage(sendPort, request); |
| 84 return _completer.future; | 97 return _completer.future; |
| 85 } | 98 } |
| 86 | 99 |
| 87 Future<String> sendToVM() { | 100 Future<String> sendToVM() { |
| 88 final receivePort = new RawReceivePort(); | 101 final receivePort = new RawReceivePort(); |
| 89 receivePort.handler = (value) { | 102 receivePort.handler = (value) { |
| 90 receivePort.close(); | 103 receivePort.close(); |
| 91 if (value is Exception) { | 104 if (value is Exception) { |
| 92 _completer.completeError(value); | 105 _completer.completeError(value); |
| 93 } else { | 106 } else { |
| 94 _completer.complete(value); | 107 _completer.complete(value); |
| 95 } | 108 } |
| 96 }; | 109 }; |
| 97 var keys = params.keys.toList(growable:false); | 110 var keys = _makeAllString(params.keys.toList(growable:false)); |
| 98 var values = params.values.toList(growable:false); | 111 var values = _makeAllString(params.values.toList(growable:false)); |
| 99 var request = new List(5) | 112 var request = new List(5) |
| 100 ..[0] = 0 // Make room for OOB message type. | 113 ..[0] = 0 // Make room for OOB message type. |
| 101 ..[1] = receivePort.sendPort | 114 ..[1] = receivePort.sendPort |
| 102 ..[2] = (isOld ? path : method) | 115 ..[2] = (isOld ? path : method) |
| 103 ..[3] = keys | 116 ..[3] = keys |
| 104 ..[4] = values; | 117 ..[4] = values; |
| 105 sendRootServiceMessage(request); | 118 sendRootServiceMessage(request); |
| 106 return _completer.future; | 119 return _completer.future; |
| 107 } | 120 } |
| 108 | 121 |
| (...skipping 11 matching lines...) Expand all Loading... | |
| 120 'params': params | 133 'params': params |
| 121 })); | 134 })); |
| 122 } | 135 } |
| 123 } | 136 } |
| 124 | 137 |
| 125 void sendIsolateServiceMessage(SendPort sp, List m) | 138 void sendIsolateServiceMessage(SendPort sp, List m) |
| 126 native "VMService_SendIsolateServiceMessage"; | 139 native "VMService_SendIsolateServiceMessage"; |
| 127 | 140 |
| 128 void sendRootServiceMessage(List m) | 141 void sendRootServiceMessage(List m) |
| 129 native "VMService_SendRootServiceMessage"; | 142 native "VMService_SendRootServiceMessage"; |
| OLD | NEW |