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

Unified Diff: tracing/tracing/value/value.html

Issue 2000063006: Define DiagnosticMap and a basic Diagnostic hierarchy (Closed) Base URL: https://github.com/catapult-project/catapult.git@master
Patch Set: rebase Created 4 years, 7 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « tracing/tracing/value/diagnostics/related_value_set.html ('k') | tracing/tracing/value/value_test.html » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tracing/tracing/value/value.html
diff --git a/tracing/tracing/value/value.html b/tracing/tracing/value/value.html
index a57b404138cdd7d4fe4d14ec8b4def9207ed1a89..bea2450169f7187d9c557aead25304a781d0101f 100644
--- a/tracing/tracing/value/value.html
+++ b/tracing/tracing/value/value.html
@@ -8,15 +8,18 @@ found in the LICENSE file.
<link rel="import" href="/tracing/base/guid.html">
<link rel="import" href="/tracing/base/iteration_helpers.html">
<link rel="import" href="/tracing/base/utils.html">
+<link rel="import" href="/tracing/value/diagnostics/diagnostic_map.html">
<script>
'use strict';
tr.exportTo('tr.v', function() {
- function Value(canonicalUrl, name, opt_options, opt_groupingKeys,
- opt_diagnostics) {
+ /** @constructor */
+ function Value(name, opt_options) {
if (typeof(name) !== 'string')
- throw new Error('Expected value_name grouping key to be provided');
+ throw new Error('name must be a string');
+
+ this.name_ = name;
// If this Value is being deserialized, then its guid will be set by
// fromDict().
@@ -24,18 +27,7 @@ tr.exportTo('tr.v', function() {
// allocated the first time the guid is gotten by asDict().
this.guid_ = undefined;
- // Allow callers to re-use groupingKeys dictionaries.
- this.groupingKeys = {name: name};
- if (opt_groupingKeys) {
- for (var keyName in opt_groupingKeys) {
- this.addGroupingKey(keyName, opt_groupingKeys[keyName]);
- }
- }
-
- this.diagnostics = opt_diagnostics || {};
-
- // May be undefined
- this.diagnostics.canonical_url = canonicalUrl;
+ this.diagnostics = new tr.v.d.DiagnosticMap();
var options = opt_options || {};
this.description = options.description;
@@ -44,19 +36,31 @@ tr.exportTo('tr.v', function() {
}
Value.fromDict = function(d) {
- if (d.type === 'numeric')
- return NumericValue.fromDict(d);
-
- if (d.type === 'dict')
- return DictValue.fromDict(d);
-
- if (d.type == 'failure')
- return FailureValue.fromDict(d);
-
- if (d.type === 'skip')
- return SkipValue.fromDict(d);
+ var value = undefined;
+ switch (d.type) {
+ case 'numeric':
+ value = NumericValue.fromDict(d);
+ break;
+
+ case 'dict':
+ value = DictValue.fromDict(d);
+ break;
+
+ case 'failure':
+ value = FailureValue.fromDict(d);
+ break;
+
+ case 'skip':
+ value = SkipValue.fromDict(d);
+ break;
+
+ default:
+ throw new Error('Not implemented');
+ }
- throw new Error('Not implemented');
+ value.guid = d.guid;
+ value.diagnostics.addDicts(d.diagnostics);
+ return value;
};
Value.prototype = {
@@ -75,21 +79,7 @@ tr.exportTo('tr.v', function() {
},
get name() {
- return this.groupingKeys.name;
- },
-
- get canonicalUrl() {
- return this.diagnostics.canonical_url;
- },
-
- addGroupingKey: function(keyName, key) {
- if (keyName === 'name')
- throw new Error('Invalid groupingKey name "name"');
-
- if (this.groupingKeys.hasOwnProperty(keyName))
- throw new Error('Tried to redefine grouping key ' + keyName);
-
- this.groupingKeys[keyName] = key;
+ return this.name_;
},
asDict: function() {
@@ -99,10 +89,10 @@ tr.exportTo('tr.v', function() {
asJSON: function() {
var d = {
guid: this.guid,
- grouping_keys: tr.b.cloneDictionary(this.groupingKeys),
+ name: this.name_,
description: this.description,
important: this.important,
- diagnostics: this.diagnostics
+ diagnostics: this.diagnostics.asDict()
};
this._asDictInto(d);
@@ -116,13 +106,12 @@ tr.exportTo('tr.v', function() {
}
};
- function NumericValue(canonicalUrl, name, numeric, opt_options,
- opt_groupingKeys, opt_diagnostics) {
+ /** @constructor */
+ function NumericValue(name, numeric, opt_options) {
if (!(numeric instanceof tr.v.NumericBase))
throw new Error('Expected numeric to be instance of tr.v.NumericBase');
- Value.call(this, canonicalUrl, name, opt_options, opt_groupingKeys,
- opt_diagnostics);
+ Value.call(this, name, opt_options);
this.numeric = numeric;
}
@@ -130,12 +119,7 @@ tr.exportTo('tr.v', function() {
if (d.numeric === undefined)
throw new Error('Expected numeric to be provided');
var numeric = tr.v.NumericBase.fromDict(d.numeric);
- var name = d.grouping_keys.name;
- d.grouping_keys = tr.b.cloneDictionary(d.groupingKeys);
- delete d.grouping_keys.name;
- var value = new NumericValue(d.diagnostics.canonical_url, name,
- numeric, d, d.grouping_keys, d.diagnostics);
- value.guid = d.guid;
+ var value = new NumericValue(d.name, numeric, d);
return value;
};
@@ -148,10 +132,9 @@ tr.exportTo('tr.v', function() {
}
};
- function DictValue(canonicalUrl, name, value, opt_options, opt_groupingKeys,
- opt_diagnostics) {
- Value.call(this, canonicalUrl, name, opt_options, opt_groupingKeys,
- opt_diagnostics);
+ /** @constructor */
+ function DictValue(name, value, opt_options) {
+ Value.call(this, name, opt_options);
this.value = value;
}
@@ -160,12 +143,7 @@ tr.exportTo('tr.v', function() {
throw new Error('Expected units to be undefined');
if (d.value === undefined)
throw new Error('Expected value to be provided');
- var name = d.grouping_keys.name;
- d.grouping_keys = tr.b.cloneDictionary(d.groupingKeys);
- delete d.grouping_keys.name;
- var value = new DictValue(d.diagnostics.canonical_url, name,
- d.value, d, d.groupingKeys, d.diagnostics);
- value.guid = d.guid;
+ var value = new DictValue(d.name, d.value, d);
return value;
};
@@ -178,9 +156,8 @@ tr.exportTo('tr.v', function() {
}
};
-
- function FailureValue(canonicalUrl, name, opt_options, opt_groupingKeys,
- opt_diagnostics) {
+ /** @constructor */
+ function FailureValue(name, opt_options) {
var options = opt_options || {};
var stack;
@@ -197,21 +174,14 @@ tr.exportTo('tr.v', function() {
if (typeof stack !== 'string')
throw new Error('stack must be provided as a string');
- if (canonicalUrl === undefined) {
- throw new Error('FailureValue must provide canonicalUrl');
- }
-
- Value.call(this, canonicalUrl, name, options, opt_groupingKeys,
- opt_diagnostics);
+ Value.call(this, name, options);
this.stack = stack;
}
- FailureValue.fromError = function(canonicalUrl, e) {
+ FailureValue.fromError = function(e) {
var ex = tr.b.normalizeException(e);
- return new FailureValue(canonicalUrl, ex.typeName,
- {description: ex.message,
- stack: ex.stack});
-
+ return new FailureValue(ex.typeName, {
+ description: ex.message, stack: ex.stack});
};
FailureValue.fromDict = function(d) {
@@ -219,13 +189,7 @@ tr.exportTo('tr.v', function() {
throw new Error('Expected units to be undefined');
if (d.stack_str === undefined)
throw new Error('Expected stack_str to be provided');
- var name = d.grouping_keys.name;
- d.grouping_keys = tr.b.cloneDictionary(d.groupingKeys);
- delete d.grouping_keys.name;
- var value = new FailureValue(d.diagnostics.canonical_url, name,
- d, d.grouping_keys, d.diagnostics);
- value.guid = d.guid;
- return value;
+ return new FailureValue(d.name, d);
};
FailureValue.prototype = {
@@ -237,23 +201,15 @@ tr.exportTo('tr.v', function() {
}
};
-
- function SkipValue(canonicalUrl, name, opt_options, opt_groupingKeys,
- opt_diagnostics) {
- Value.call(this, canonicalUrl, name, opt_options, opt_groupingKeys,
- opt_diagnostics);
+ /** @constructor */
+ function SkipValue(name, opt_options) {
+ Value.call(this, name, opt_options);
}
SkipValue.fromDict = function(d) {
if (d.units !== undefined)
throw new Error('Expected units to be undefined');
- var name = d.grouping_keys.name;
- d.grouping_keys = tr.b.cloneDictionary(d.groupingKeys);
- delete d.grouping_keys.name;
- var value = new SkipValue(d.diagnostics.canonical_url, name,
- d, d.grouping_keys, d.diagnostics);
- value.guid = d.guid;
- return value;
+ return new SkipValue(d.name, d);
};
SkipValue.prototype = {
« no previous file with comments | « tracing/tracing/value/diagnostics/related_value_set.html ('k') | tracing/tracing/value/value_test.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698