Upstream version 9.38.198.0
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / Source / devtools / front_end / sdk / HeapProfilerModel.js
1 /**
2  * @constructor
3  * @extends {WebInspector.SDKModel}
4  * @param {!WebInspector.Target} target
5  */
6 WebInspector.HeapProfilerModel = function(target)
7 {
8     WebInspector.SDKModel.call(this, WebInspector.HeapProfilerModel, target);
9     target.registerHeapProfilerDispatcher(new WebInspector.HeapProfilerDispatcher(this));
10     this._enabled = false;
11     this._heapProfilerAgent = target.heapProfilerAgent();
12 }
13
14 WebInspector.HeapProfilerModel.Events = {
15     HeapStatsUpdate: "HeapStatsUpdate",
16     LastSeenObjectId: "LastSeenObjectId",
17     AddHeapSnapshotChunk: "AddHeapSnapshotChunk",
18     ReportHeapSnapshotProgress: "ReportHeapSnapshotProgress",
19     ResetProfiles: "ResetProfiles"
20 }
21
22 WebInspector.HeapProfilerModel.prototype = {
23
24     enable: function()
25     {
26         if (this._enabled)
27             return;
28
29         this._enabled = true;
30         this._heapProfilerAgent.enable();
31     },
32
33     /**
34      * @param {!Array.<number>} samples
35      */
36     heapStatsUpdate: function(samples)
37     {
38         this.dispatchEventToListeners(WebInspector.HeapProfilerModel.Events.HeapStatsUpdate, samples);
39     },
40
41     /**
42      * @param {number} lastSeenObjectId
43      * @param {number} timestamp
44      */
45     lastSeenObjectId: function(lastSeenObjectId, timestamp)
46     {
47         this.dispatchEventToListeners(WebInspector.HeapProfilerModel.Events.LastSeenObjectId ,{lastSeenObjectId: lastSeenObjectId, timestamp: timestamp});
48     },
49
50     /**
51      * @param {string} chunk
52      */
53     addHeapSnapshotChunk: function(chunk)
54     {
55         this.dispatchEventToListeners(WebInspector.HeapProfilerModel.Events.AddHeapSnapshotChunk, chunk);
56     },
57
58     /**
59      * @param {number} done
60      * @param {number} total
61      * @param {boolean=} finished
62      */
63     reportHeapSnapshotProgress: function(done, total, finished)
64     {
65         this.dispatchEventToListeners(WebInspector.HeapProfilerModel.Events.ReportHeapSnapshotProgress, {done: done, total: total, finished: finished});
66     },
67
68     resetProfiles: function()
69     {
70         this.dispatchEventToListeners(WebInspector.HeapProfilerModel.Events.ResetProfiles);
71     },
72
73     __proto__: WebInspector.SDKModel.prototype
74 }
75
76
77 /**
78  * @constructor
79  * @implements {HeapProfilerAgent.Dispatcher}
80  */
81 WebInspector.HeapProfilerDispatcher = function(model)
82 {
83     this._heapProfilerModel = model;
84 }
85
86 WebInspector.HeapProfilerDispatcher.prototype = {
87
88     /**
89      * @param {!Array.<number>} samples
90      */
91     heapStatsUpdate: function(samples)
92     {
93         this._heapProfilerModel.heapStatsUpdate(samples);
94     },
95
96     /**
97      * @param {number} lastSeenObjectId
98      * @param {number} timestamp
99      */
100     lastSeenObjectId: function(lastSeenObjectId, timestamp)
101     {
102         this._heapProfilerModel.lastSeenObjectId(lastSeenObjectId, timestamp);
103     },
104
105     /**
106      * @param {string} chunk
107      */
108     addHeapSnapshotChunk: function(chunk)
109     {
110         this._heapProfilerModel.addHeapSnapshotChunk(chunk);
111     },
112
113     /**
114      * @param {number} done
115      * @param {number} total
116      * @param {boolean=} finished
117      */
118     reportHeapSnapshotProgress: function(done, total, finished)
119     {
120         this._heapProfilerModel.reportHeapSnapshotProgress(done, total, finished);
121     },
122
123     resetProfiles: function()
124     {
125         this._heapProfilerModel.resetProfiles();
126     }
127 }