| <!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/base.html"> |
| <link rel="import" href="/base/extension_registry.html"> |
| <script> |
| 'use strict'; |
| |
| /** |
| * @fileoverview Base class for trace data importers. |
| */ |
| tv.exportTo('tv.c.importer', function() { |
| function Importer() { } |
| |
| Importer.prototype = { |
| __proto__: Object.prototype, |
| |
| /** |
| * Called by the Model to check whether the importer type stores the actual |
| * trace data or just holds it as container for further extraction. |
| */ |
| isTraceDataContainer: function() { |
| return false; |
| }, |
| |
| /** |
| * Called by the Model to extract one or more subtraces from the event data. |
| */ |
| extractSubtraces: function() { |
| return []; |
| }, |
| |
| /** |
| * Called to import events into the Model. |
| */ |
| importEvents: function() { |
| }, |
| |
| /** |
| * Called to import sample data into the Model. |
| */ |
| importSampleData: function() { |
| }, |
| |
| /** |
| * Called by the Model after all other importers have imported their |
| * events. |
| */ |
| finalizeImport: function() { |
| }, |
| |
| /** |
| * Called by the Model to join references between objects, after final |
| * model bounds have been computed. |
| */ |
| joinRefs: function() { |
| } |
| }; |
| |
| |
| var options = new tv.b.ExtensionRegistryOptions(tv.b.BASIC_REGISTRY_MODE); |
| options.defaultMetadata = {}; |
| options.mandatoryBaseClass = Importer; |
| tv.b.decorateExtensionRegistry(Importer, options); |
| |
| Importer.findImporterFor = function(eventData) { |
| var typeInfo = Importer.findTypeInfoMatching(function(ti) { |
| return ti.constructor.canImport(eventData); |
| }); |
| if (typeInfo) |
| return typeInfo.constructor; |
| return undefined; |
| }; |
| |
| return { |
| Importer: Importer |
| }; |
| }); |
| </script> |