Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(252)

Side by Side Diff: runtime/vm/service/message.dart

Issue 887413003: Port type arguments to new RPC protocol (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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
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
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";
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698