blob: 254c2f22676b926982962e2e5c1c7e47a4276328 [file] [log] [blame]
<!DOCTYPE html>
<!--
Copyright (c) 2015 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/base.html">
<script>
'use strict';
/**
* @fileoverview Provides the base class for all container classes.
*/
tv.exportTo('tv.c.trace_model', function() {
function EventContainer() {
this.important = true;
this.bounds = undefined;
}
EventContainer.prototype = {
/*
* @return {String} An identifier that is made up of this parent's
* stableIdentifier plus this countainer identifier.
*/
get stableId() {
throw new Error('Not implemented');
},
updateBounds: function() {
throw new Error('Not implemented');
},
shiftTimestampsForward: function(amount) {
throw new Error('Not implemented');
},
iterateAllEventsInThisContainer: function(eventTypePredicate,
callback, opt_this) {
throw new Error('Not implemented');
},
iterateAllChildEventContainers: function(callback, opt_this) {
throw new Error('Not implemented');
},
/**
* Iterates all events in the model and calls callback on each event.
* @param {function(event)} callback The callback called for every event.
*/
iterateAllEvents: function(callback, opt_this) {
this.iterateAllEventContainers(function(ec) {
ec.iterateAllEventsInThisContainer(
function(eventType) { return true; },
callback, opt_this);
});
},
iterateAllEventContainers: function(callback, opt_this) {
function visit(ec) {
callback.call(opt_this, ec);
ec.iterateAllChildEventContainers(visit);
}
visit(this);
}
};
return {
EventContainer: EventContainer
};
});
</script>