17a33c86eb98056ef0570c99e713214f8dc56b6efJeff Brown// Copyright (c) 2012 The Chromium Authors. All rights reserved.
27a33c86eb98056ef0570c99e713214f8dc56b6efJeff Brown// Use of this source code is governed by a BSD-style license that can be
37a33c86eb98056ef0570c99e713214f8dc56b6efJeff Brown// found in the LICENSE file.
47a33c86eb98056ef0570c99e713214f8dc56b6efJeff Brown
57a33c86eb98056ef0570c99e713214f8dc56b6efJeff Brown'use strict';
67a33c86eb98056ef0570c99e713214f8dc56b6efJeff Brown
77a33c86eb98056ef0570c99e713214f8dc56b6efJeff Brownbase.exportTo('tracing.analysis', function() {
87a33c86eb98056ef0570c99e713214f8dc56b6efJeff Brown  function StubAnalysisResults() {
97a33c86eb98056ef0570c99e713214f8dc56b6efJeff Brown    this.tables = [];
107a33c86eb98056ef0570c99e713214f8dc56b6efJeff Brown  }
117a33c86eb98056ef0570c99e713214f8dc56b6efJeff Brown  StubAnalysisResults.prototype = {
127a33c86eb98056ef0570c99e713214f8dc56b6efJeff Brown    __proto__: Object.protoype,
137a33c86eb98056ef0570c99e713214f8dc56b6efJeff Brown
147a33c86eb98056ef0570c99e713214f8dc56b6efJeff Brown    appendTable: function(parent, className) {
157a33c86eb98056ef0570c99e713214f8dc56b6efJeff Brown      var table = {
167a33c86eb98056ef0570c99e713214f8dc56b6efJeff Brown        className: className,
177a33c86eb98056ef0570c99e713214f8dc56b6efJeff Brown        rows: []
187a33c86eb98056ef0570c99e713214f8dc56b6efJeff Brown      };
197a33c86eb98056ef0570c99e713214f8dc56b6efJeff Brown      table.className = className;
207a33c86eb98056ef0570c99e713214f8dc56b6efJeff Brown      this.tables.push(table);
217a33c86eb98056ef0570c99e713214f8dc56b6efJeff Brown      return table;
227a33c86eb98056ef0570c99e713214f8dc56b6efJeff Brown    },
237a33c86eb98056ef0570c99e713214f8dc56b6efJeff Brown
247a33c86eb98056ef0570c99e713214f8dc56b6efJeff Brown    appendTableHeader: function(table, label) {
257a33c86eb98056ef0570c99e713214f8dc56b6efJeff Brown      if (table.tableHeader)
267a33c86eb98056ef0570c99e713214f8dc56b6efJeff Brown        throw new Error('Only one summary header allowed.');
277a33c86eb98056ef0570c99e713214f8dc56b6efJeff Brown      table.tableHeader = label;
287a33c86eb98056ef0570c99e713214f8dc56b6efJeff Brown    },
297a33c86eb98056ef0570c99e713214f8dc56b6efJeff Brown
307a33c86eb98056ef0570c99e713214f8dc56b6efJeff Brown    appendSummaryRow: function(table, label, opt_text) {
317a33c86eb98056ef0570c99e713214f8dc56b6efJeff Brown      table.rows.push({label: label,
327a33c86eb98056ef0570c99e713214f8dc56b6efJeff Brown        text: opt_text});
337a33c86eb98056ef0570c99e713214f8dc56b6efJeff Brown    },
347a33c86eb98056ef0570c99e713214f8dc56b6efJeff Brown
357a33c86eb98056ef0570c99e713214f8dc56b6efJeff Brown    appendSpacingRow: function(table) {
367a33c86eb98056ef0570c99e713214f8dc56b6efJeff Brown      table.rows.push({spacing: true});
377a33c86eb98056ef0570c99e713214f8dc56b6efJeff Brown    },
387a33c86eb98056ef0570c99e713214f8dc56b6efJeff Brown
397a33c86eb98056ef0570c99e713214f8dc56b6efJeff Brown    appendSummaryRowTime: function(table, label, time) {
407a33c86eb98056ef0570c99e713214f8dc56b6efJeff Brown      table.rows.push({label: label,
417a33c86eb98056ef0570c99e713214f8dc56b6efJeff Brown        time: time});
427a33c86eb98056ef0570c99e713214f8dc56b6efJeff Brown    },
437a33c86eb98056ef0570c99e713214f8dc56b6efJeff Brown
447a33c86eb98056ef0570c99e713214f8dc56b6efJeff Brown    appendDataRow: function(table, label, duration, occurences,
457a33c86eb98056ef0570c99e713214f8dc56b6efJeff Brown                            details, selectionGenerator) {
467a33c86eb98056ef0570c99e713214f8dc56b6efJeff Brown      table.rows.push({label: label,
477a33c86eb98056ef0570c99e713214f8dc56b6efJeff Brown        duration: duration,
487a33c86eb98056ef0570c99e713214f8dc56b6efJeff Brown        occurences: occurences,
497a33c86eb98056ef0570c99e713214f8dc56b6efJeff Brown        details: details,
507a33c86eb98056ef0570c99e713214f8dc56b6efJeff Brown        selectionGenerator: selectionGenerator});
517a33c86eb98056ef0570c99e713214f8dc56b6efJeff Brown    }
527a33c86eb98056ef0570c99e713214f8dc56b6efJeff Brown  };
537a33c86eb98056ef0570c99e713214f8dc56b6efJeff Brown
547a33c86eb98056ef0570c99e713214f8dc56b6efJeff Brown  return {
557a33c86eb98056ef0570c99e713214f8dc56b6efJeff Brown    StubAnalysisResults: StubAnalysisResults
567a33c86eb98056ef0570c99e713214f8dc56b6efJeff Brown  };
577a33c86eb98056ef0570c99e713214f8dc56b6efJeff Brown});
587a33c86eb98056ef0570c99e713214f8dc56b6efJeff Brown