blob: bc3977bbaf0f0fdaaa94569a71a4dfb6fa2c4d31 [file] [log] [blame]
<!DOCTYPE html>
<!--
Copyright (c) 2013 The Chromium Authors. All rights reserved.
Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file.
-->
<link rel="import" href="/base/range.html">
<link rel="import" href="/model/thread_time_slice.html">
<script>
'use strict';
/**
* @fileoverview Provides the CpuSlice class.
*/
tr.exportTo('tr.model', function() {
var Slice = tr.model.Slice;
/**
* A CpuSlice represents a slice of time on a CPU.
*
* @constructor
*/
function CpuSlice(cat, title, colorId, start, args, opt_duration) {
Slice.apply(this, arguments);
this.threadThatWasRunning = undefined;
this.cpu = undefined;
}
CpuSlice.prototype = {
__proto__: Slice.prototype,
get analysisTypeName() {
return 'tr.c.analysis.CpuSlice';
},
getAssociatedTimeslice: function() {
if (!this.threadThatWasRunning)
return undefined;
var timeSlices = this.threadThatWasRunning.timeSlices;
for (var i = 0; i < timeSlices.length; i++) {
var timeSlice = timeSlices[i];
if (timeSlice.start !== this.start)
continue;
if (timeSlice.duration !== this.duration)
continue;
return timeSlice;
}
return undefined;
}
};
tr.model.EventRegistry.register(
CpuSlice,
{
name: 'cpuSlice',
pluralName: 'cpuSlices',
singleViewElementName: 'tr-c-a-single-cpu-slice-sub-view',
multiViewElementName: 'tr-c-a-multi-cpu-slice-sub-view'
});
return {
CpuSlice: CpuSlice
};
});
</script>