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

Side by Side Diff: runtime/bin/vmservice/service_request.dart

Issue 112223002: WebSocket client for VM service (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 years 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
(Empty)
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
3 // BSD-style license that can be found in the LICENSE file.
4
5 part of vmservice;
6
7 class ServiceRequest {
8 final List<String> pathSegments = new List<String>();
9 final Map<String, String> parameters = new Map<String, String>();
10 String _response;
11 String get response => _response;
12
13 ServiceRequest();
14
15 bool parse(Uri uri) {
16 var path = uri.path;
17 var split = path.split('/');
18 if (split.length == 0) {
19 setErrorResponse('Invalid request uri: ${request.uri}');
20 return false;
21 }
22 for (int i = 0; i < split.length; i++) {
23 var pathSegment = split[i];
24 if (pathSegment == '') {
25 continue;
26 }
27 pathSegments.add(pathSegment);
28 }
29 uri.queryParameters.forEach((k, v) {
30 parameters[k] = v;
31 });
32 return true;
33 }
34
35 List toServiceCallMessage() {
36 return [pathSegments, parameters.keys.toList(), parameters.values.toList()];
37 }
38
39 void setErrorResponse(String error) {
40 _response = JSON.encode({
41 'type': 'Error',
42 'msg': error,
43 'pathSegments': pathSegments,
44 'parameters': parameters
45 });
46 }
47
48 void setResponse(String response) {
49 _response = response;
50 }
51
52 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698