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

Side by Side Diff: pkg/analysis_server/lib/src/protocol.dart

Issue 1181363004: refactor Reqest.fromJson for use by performance measurement tests (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: address comments Created 5 years, 6 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 | « no previous file | no next file » | 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) 2014, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2014, 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 library protocol; 5 library protocol;
6 6
7 import 'dart:collection'; 7 import 'dart:collection';
8 import 'dart:convert'; 8 import 'dart:convert';
9 9
10 part 'generated_protocol.dart'; 10 part 'generated_protocol.dart';
(...skipping 500 matching lines...) Expand 10 before | Expand all | Expand 10 after
511 Request(this.id, this.method, 511 Request(this.id, this.method,
512 [Map<String, Object> params, this.clientRequestTime]) 512 [Map<String, Object> params, this.clientRequestTime])
513 : _params = params != null ? params : new HashMap<String, Object>(); 513 : _params = params != null ? params : new HashMap<String, Object>();
514 514
515 /** 515 /**
516 * Return a request parsed from the given [data], or `null` if the [data] is 516 * Return a request parsed from the given [data], or `null` if the [data] is
517 * not a valid json representation of a request. The [data] is expected to 517 * not a valid json representation of a request. The [data] is expected to
518 * have the following format: 518 * have the following format:
519 * 519 *
520 * { 520 * {
521 * 'clientRequestTime': millisecondsSinceEpoch
521 * 'id': String, 522 * 'id': String,
522 * 'method': methodName, 523 * 'method': methodName,
523 * 'params': { 524 * 'params': {
524 * paramter_name: value 525 * paramter_name: value
525 * } 526 * }
526 * 'clientRequestTime': millisecondsSinceEpoch
527 * } 527 * }
528 * 528 *
529 * where both the parameters and clientRequestTime are optional. 529 * where both the parameters and clientRequestTime are optional.
530 * The parameters can contain any number of name/value pairs. 530 * The parameters can contain any number of name/value pairs.
531 * The clientRequestTime must be an int representing the time at which 531 * The clientRequestTime must be an int representing the time at which
532 * the client issued the request (milliseconds since epoch). 532 * the client issued the request (milliseconds since epoch).
533 */ 533 */
534 factory Request.fromString(String data) { 534 factory Request.fromString(String data) {
535 try { 535 try {
536 var result = JSON.decode(data); 536 var result = JSON.decode(data);
537 if (result is! Map) { 537 if (result is Map) {
538 return null; 538 return new Request.fromJson(result);
539 } 539 }
540 var id = result[Request.ID]; 540 return null;
541 var method = result[Request.METHOD];
542 if (id is! String || method is! String) {
543 return null;
544 }
545 var time = result[Request.CLIENT_REQUEST_TIME];
546 if (time != null && time is! int) {
547 return null;
548 }
549 var params = result[Request.PARAMS];
550 if (params is Map || params == null) {
551 return new Request(id, method, params, time);
552 } else {
553 return null;
554 }
555 } catch (exception) { 541 } catch (exception) {
556 return null; 542 return null;
557 } 543 }
558 } 544 }
559 545
560 /** 546 /**
547 * Return a request parsed from the given json, or `null` if the [data] is
548 * not a valid json representation of a request. The [data] is expected to
549 * have the following format:
550 *
551 * {
552 * 'clientRequestTime': millisecondsSinceEpoch
553 * 'id': String,
554 * 'method': methodName,
555 * 'params': {
556 * paramter_name: value
557 * }
558 * }
559 *
560 * where both the parameters and clientRequestTime are optional.
561 * The parameters can contain any number of name/value pairs.
562 * The clientRequestTime must be an int representing the time at which
563 * the client issued the request (milliseconds since epoch).
564 */
565 factory Request.fromJson(Map<String, dynamic> result) {
566 var id = result[Request.ID];
567 var method = result[Request.METHOD];
568 if (id is! String || method is! String) {
569 return null;
570 }
571 var time = result[Request.CLIENT_REQUEST_TIME];
572 if (time != null && time is! int) {
573 return null;
574 }
575 var params = result[Request.PARAMS];
576 if (params is Map || params == null) {
577 return new Request(id, method, params, time);
578 } else {
579 return null;
580 }
581 }
582
583 /**
561 * Return a table representing the structure of the Json object that will be 584 * Return a table representing the structure of the Json object that will be
562 * sent to the client to represent this response. 585 * sent to the client to represent this response.
563 */ 586 */
564 Map<String, Object> toJson() { 587 Map<String, Object> toJson() {
565 Map<String, Object> jsonObject = new HashMap<String, Object>(); 588 Map<String, Object> jsonObject = new HashMap<String, Object>();
566 jsonObject[ID] = id; 589 jsonObject[ID] = id;
567 jsonObject[METHOD] = method; 590 jsonObject[METHOD] = method;
568 if (_params.isNotEmpty) { 591 if (_params.isNotEmpty) {
569 jsonObject[PARAMS] = _params; 592 jsonObject[PARAMS] = _params;
570 } 593 }
(...skipping 340 matching lines...) Expand 10 before | Expand all | Expand 10 after
911 hash = 0x1fffffff & (hash + ((0x03ffffff & hash) << 3)); 934 hash = 0x1fffffff & (hash + ((0x03ffffff & hash) << 3));
912 hash = hash ^ (hash >> 11); 935 hash = hash ^ (hash >> 11);
913 return 0x1fffffff & (hash + ((0x00003fff & hash) << 15)); 936 return 0x1fffffff & (hash + ((0x00003fff & hash) << 15));
914 } 937 }
915 938
916 static int hash2(a, b) => finish(combine(combine(0, a), b)); 939 static int hash2(a, b) => finish(combine(combine(0, a), b));
917 940
918 static int hash4(a, b, c, d) => 941 static int hash4(a, b, c, d) =>
919 finish(combine(combine(combine(combine(0, a), b), c), d)); 942 finish(combine(combine(combine(combine(0, a), b), c), d));
920 } 943 }
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698