blob: fdf387f8e530186bbc26d4489ecf6e7945990529 [file] [log] [blame]
Jamie Gennis6833e182013-07-19 14:00:49 -07001// Copyright (c) 2013 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5'use strict';
6
7base.require('tracing.trace_model.slice');
8
9/**
10 * @fileoverview Provides the AsyncSlice class.
11 */
12base.exportTo('tracing.trace_model', function() {
13 /**
14 * A AsyncSlice represents an interval of time during which an
15 * asynchronous operation is in progress. An AsyncSlice consumes no CPU time
16 * itself and so is only associated with Threads at its start and end point.
17 *
18 * @constructor
19 */
20 function AsyncSlice(category, title, colorId, start, args) {
21 tracing.trace_model.Slice.apply(this, arguments);
22 };
23
24 AsyncSlice.prototype = {
25 __proto__: tracing.trace_model.Slice.prototype,
26
27 toJSON: function() {
28 var obj = new Object();
29 var keys = Object.keys(this);
30 for (var i = 0; i < keys.length; i++) {
31 var key = keys[i];
32 if (typeof this[key] == 'function')
33 continue;
34 if (key == 'startThread' || key == 'endThread') {
35 obj[key] = this[key].guid;
36 continue;
37 }
38 obj[key] = this[key];
39 }
40 return obj;
41 },
42
43 id: undefined,
44
45 startThread: undefined,
46
47 endThread: undefined,
48
49 subSlices: undefined
50 };
51
52 return {
53 AsyncSlice: AsyncSlice
54 };
55});