12da489cd246702bee5938545b18a6f710ed214bcJamie Gennis// Copyright (c) 2012 The Chromium Authors. All rights reserved.
22da489cd246702bee5938545b18a6f710ed214bcJamie Gennis// Use of this source code is governed by a BSD-style license that can be
32da489cd246702bee5938545b18a6f710ed214bcJamie Gennis// found in the LICENSE file.
42da489cd246702bee5938545b18a6f710ed214bcJamie Gennis
52da489cd246702bee5938545b18a6f710ed214bcJamie Gennis'use strict';
62da489cd246702bee5938545b18a6f710ed214bcJamie Gennis
76833e18b1d4077bf3a727b4422cc2acdbeee35a7Jamie Gennisbase.require('tracing.trace_model.trace_model_event');
86833e18b1d4077bf3a727b4422cc2acdbeee35a7Jamie Gennis
92da489cd246702bee5938545b18a6f710ed214bcJamie Gennis/**
1088448d9ae4dfff1805045790ef5f32495d62abccJeff Brown * @fileoverview Provides the Slice class.
112da489cd246702bee5938545b18a6f710ed214bcJamie Gennis */
1266a37686207944273ced825e0e8b6b6375f8c3deJamie Gennisbase.exportTo('tracing.trace_model', function() {
132da489cd246702bee5938545b18a6f710ed214bcJamie Gennis  /**
1488448d9ae4dfff1805045790ef5f32495d62abccJeff Brown   * A Slice represents an interval of time plus parameters associated
152da489cd246702bee5938545b18a6f710ed214bcJamie Gennis   * with that interval.
162da489cd246702bee5938545b18a6f710ed214bcJamie Gennis   *
172da489cd246702bee5938545b18a6f710ed214bcJamie Gennis   * @constructor
182da489cd246702bee5938545b18a6f710ed214bcJamie Gennis   */
1988448d9ae4dfff1805045790ef5f32495d62abccJeff Brown  function Slice(category, title, colorId, start, args, opt_duration) {
206833e18b1d4077bf3a727b4422cc2acdbeee35a7Jamie Gennis    tracing.trace_model.TraceModelEvent.
216833e18b1d4077bf3a727b4422cc2acdbeee35a7Jamie Gennis        call(this, category, title, colorId, start, args);
226833e18b1d4077bf3a727b4422cc2acdbeee35a7Jamie Gennis
232da489cd246702bee5938545b18a6f710ed214bcJamie Gennis    if (opt_duration !== undefined)
242da489cd246702bee5938545b18a6f710ed214bcJamie Gennis      this.duration = opt_duration;
252da489cd246702bee5938545b18a6f710ed214bcJamie Gennis  }
262da489cd246702bee5938545b18a6f710ed214bcJamie Gennis
2788448d9ae4dfff1805045790ef5f32495d62abccJeff Brown  Slice.prototype = {
286833e18b1d4077bf3a727b4422cc2acdbeee35a7Jamie Gennis    __proto__: tracing.trace_model.TraceModelEvent.prototype,
292da489cd246702bee5938545b18a6f710ed214bcJamie Gennis
302da489cd246702bee5938545b18a6f710ed214bcJamie Gennis    get end() {
312da489cd246702bee5938545b18a6f710ed214bcJamie Gennis      return this.start + this.duration;
322da489cd246702bee5938545b18a6f710ed214bcJamie Gennis    }
332da489cd246702bee5938545b18a6f710ed214bcJamie Gennis  };
342da489cd246702bee5938545b18a6f710ed214bcJamie Gennis
352da489cd246702bee5938545b18a6f710ed214bcJamie Gennis  return {
3688448d9ae4dfff1805045790ef5f32495d62abccJeff Brown    Slice: Slice
372da489cd246702bee5938545b18a6f710ed214bcJamie Gennis  };
382da489cd246702bee5938545b18a6f710ed214bcJamie Gennis});
39