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

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

Issue 1255003003: Make VM service id handling JSON-RPC 2 compliant. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: cr Created 5 years, 4 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
« no previous file with comments | « runtime/vm/service.cc ('k') | runtime/vm/service/service.md » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
95 receivePort.handler = (value) { 95 receivePort.handler = (value) {
96 receivePort.close(); 96 receivePort.close();
97 assert(value is String); 97 assert(value is String);
98 _completer.complete(value); 98 _completer.complete(value);
99 }; 99 };
100 var keys = _makeAllString(params.keys.toList(growable:false)); 100 var keys = _makeAllString(params.keys.toList(growable:false));
101 var values = _makeAllString(params.values.toList(growable:false)); 101 var values = _makeAllString(params.values.toList(growable:false));
102 var request = new List(6) 102 var request = new List(6)
103 ..[0] = 0 // Make room for OOB message type. 103 ..[0] = 0 // Make room for OOB message type.
104 ..[1] = receivePort.sendPort 104 ..[1] = receivePort.sendPort
105 ..[2] = serial.toString() 105 ..[2] = serial
106 ..[3] = method 106 ..[3] = method
107 ..[4] = keys 107 ..[4] = keys
108 ..[5] = values; 108 ..[5] = values;
109 if (!sendIsolateServiceMessage(sendPort, request)) { 109 if (!sendIsolateServiceMessage(sendPort, request)) {
110 _completer.complete(JSON.encode({ 110 _completer.complete(JSON.encode({
111 'type': 'ServiceError', 111 'type': 'ServiceError',
112 'id': '', 112 'id': '',
113 'kind': 'InternalError', 113 'kind': 'InternalError',
114 'message': 'could not send message [${serial}] to isolate', 114 'message': 'could not send message [${serial}] to isolate',
115 })); 115 }));
116 } 116 }
117 return _completer.future; 117 return _completer.future;
118 } 118 }
119 119
120 Future<String> sendToVM() { 120 Future<String> sendToVM() {
121 final receivePort = new RawReceivePort(); 121 final receivePort = new RawReceivePort();
122 receivePort.handler = (value) { 122 receivePort.handler = (value) {
123 receivePort.close(); 123 receivePort.close();
124 assert(value is String); 124 assert(value is String);
125 _completer.complete(value); 125 _completer.complete(value);
126 }; 126 };
127 var keys = _makeAllString(params.keys.toList(growable:false)); 127 var keys = _makeAllString(params.keys.toList(growable:false));
128 var values = _makeAllString(params.values.toList(growable:false)); 128 var values = _makeAllString(params.values.toList(growable:false));
129 var request = new List(6) 129 var request = new List(6)
130 ..[0] = 0 // Make room for OOB message type. 130 ..[0] = 0 // Make room for OOB message type.
131 ..[1] = receivePort.sendPort 131 ..[1] = receivePort.sendPort
132 ..[2] = serial.toString() 132 ..[2] = serial
133 ..[3] = method 133 ..[3] = method
134 ..[4] = keys 134 ..[4] = keys
135 ..[5] = values; 135 ..[5] = values;
136 sendRootServiceMessage(request); 136 sendRootServiceMessage(request);
137 return _completer.future; 137 return _completer.future;
138 } 138 }
139 139
140 void setResponse(String response) { 140 void setResponse(String response) {
141 _completer.complete(response); 141 _completer.complete(response);
142 } 142 }
(...skipping 13 matching lines...) Expand all
156 }; 156 };
157 _completer.complete(JSON.encode(response)); 157 _completer.complete(JSON.encode(response));
158 } 158 }
159 } 159 }
160 160
161 bool sendIsolateServiceMessage(SendPort sp, List m) 161 bool sendIsolateServiceMessage(SendPort sp, List m)
162 native "VMService_SendIsolateServiceMessage"; 162 native "VMService_SendIsolateServiceMessage";
163 163
164 void sendRootServiceMessage(List m) 164 void sendRootServiceMessage(List m)
165 native "VMService_SendRootServiceMessage"; 165 native "VMService_SendRootServiceMessage";
OLDNEW
« no previous file with comments | « runtime/vm/service.cc ('k') | runtime/vm/service/service.md » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698