blob: 5a132f8fecf7889aa6a38d5faf3f9f2874a9b790 [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="/tracing/base/base.html">
<script>
'use strict';
/**
* @fileoverview Provides the Event Index class.
*/
tr.exportTo('tr.model', function() {
/**
* A Event Index maps an id to all the events that have that particular id
*
* @constructor
*/
function ModelIndices(model) {
// For now the only indices we construct are for flowEvents
this.flowEventsById_ = {};
model.flowEvents.forEach(function(fe) {
if (fe.id !== undefined) {
if (!this.flowEventsById_.hasOwnProperty(fe.id)) {
this.flowEventsById_[fe.id] = new Array();
}
this.flowEventsById_[fe.id].push(fe);
}
}, this);
}
ModelIndices.prototype = {
addEventWithId: function(id, event) {
if (!this.flowEventsById_.hasOwnProperty(id)) {
this.flowEventsById_[id] = new Array();
}
this.flowEventsById_[id].push(event);
},
getFlowEventsWithId: function(id) {
if (!this.flowEventsById_.hasOwnProperty(id))
return [];
return this.flowEventsById_[id];
}
};
return {
ModelIndices: ModelIndices
};
});
</script>