1197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch/** 2197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch * @constructor 3c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) * @extends {WebInspector.SDKModel} 4197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch * @param {!WebInspector.Target} target 5197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch */ 6197021e6b966cfb06891637935ef33fff06433d1Ben MurdochWebInspector.HeapProfilerModel = function(target) 7197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch{ 8c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) WebInspector.SDKModel.call(this, WebInspector.HeapProfilerModel, target); 9197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch target.registerHeapProfilerDispatcher(new WebInspector.HeapProfilerDispatcher(this)); 10197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch this._enabled = false; 11197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch this._heapProfilerAgent = target.heapProfilerAgent(); 12197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch} 13197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch 14197021e6b966cfb06891637935ef33fff06433d1Ben MurdochWebInspector.HeapProfilerModel.Events = { 15197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch HeapStatsUpdate: "HeapStatsUpdate", 16197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch LastSeenObjectId: "LastSeenObjectId", 17197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch AddHeapSnapshotChunk: "AddHeapSnapshotChunk", 18197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch ReportHeapSnapshotProgress: "ReportHeapSnapshotProgress", 19197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch ResetProfiles: "ResetProfiles" 20197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch} 21197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch 22197021e6b966cfb06891637935ef33fff06433d1Ben MurdochWebInspector.HeapProfilerModel.prototype = { 23197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch 24197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch enable: function() 25197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch { 26197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch if (this._enabled) 27197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch return; 28197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch 29197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch this._enabled = true; 30197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch this._heapProfilerAgent.enable(); 31197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch }, 32197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch 33197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch /** 34197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch * @param {!Array.<number>} samples 35197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch */ 36197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch heapStatsUpdate: function(samples) 37197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch { 38197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch this.dispatchEventToListeners(WebInspector.HeapProfilerModel.Events.HeapStatsUpdate, samples); 39197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch }, 40197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch 41197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch /** 42197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch * @param {number} lastSeenObjectId 43197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch * @param {number} timestamp 44197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch */ 45197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch lastSeenObjectId: function(lastSeenObjectId, timestamp) 46197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch { 47197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch this.dispatchEventToListeners(WebInspector.HeapProfilerModel.Events.LastSeenObjectId ,{lastSeenObjectId: lastSeenObjectId, timestamp: timestamp}); 48197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch }, 49197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch 50197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch /** 51197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch * @param {string} chunk 52197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch */ 53197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch addHeapSnapshotChunk: function(chunk) 54197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch { 55197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch this.dispatchEventToListeners(WebInspector.HeapProfilerModel.Events.AddHeapSnapshotChunk, chunk); 56197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch }, 57197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch 58197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch /** 59197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch * @param {number} done 60197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch * @param {number} total 61197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch * @param {boolean=} finished 62197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch */ 63197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch reportHeapSnapshotProgress: function(done, total, finished) 64197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch { 65197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch this.dispatchEventToListeners(WebInspector.HeapProfilerModel.Events.ReportHeapSnapshotProgress, {done: done, total: total, finished: finished}); 66197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch }, 67197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch 68197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch resetProfiles: function() 69197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch { 70197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch this.dispatchEventToListeners(WebInspector.HeapProfilerModel.Events.ResetProfiles); 71197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch }, 72197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch 73c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) __proto__: WebInspector.SDKModel.prototype 74197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch} 75197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch 76197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch 77197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch/** 78197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch * @constructor 79197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch * @implements {HeapProfilerAgent.Dispatcher} 80197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch */ 81197021e6b966cfb06891637935ef33fff06433d1Ben MurdochWebInspector.HeapProfilerDispatcher = function(model) 82197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch{ 83197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch this._heapProfilerModel = model; 84197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch} 85197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch 86197021e6b966cfb06891637935ef33fff06433d1Ben MurdochWebInspector.HeapProfilerDispatcher.prototype = { 87197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch 88197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch /** 89197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch * @param {!Array.<number>} samples 90197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch */ 91197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch heapStatsUpdate: function(samples) 92197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch { 93197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch this._heapProfilerModel.heapStatsUpdate(samples); 94197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch }, 95197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch 96197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch /** 97197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch * @param {number} lastSeenObjectId 98197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch * @param {number} timestamp 99197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch */ 100197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch lastSeenObjectId: function(lastSeenObjectId, timestamp) 101197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch { 102197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch this._heapProfilerModel.lastSeenObjectId(lastSeenObjectId, timestamp); 103197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch }, 104197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch 105197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch /** 106197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch * @param {string} chunk 107197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch */ 108197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch addHeapSnapshotChunk: function(chunk) 109197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch { 110197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch this._heapProfilerModel.addHeapSnapshotChunk(chunk); 111197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch }, 112197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch 113197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch /** 114197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch * @param {number} done 115197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch * @param {number} total 116197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch * @param {boolean=} finished 117197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch */ 118197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch reportHeapSnapshotProgress: function(done, total, finished) 119197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch { 120197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch this._heapProfilerModel.reportHeapSnapshotProgress(done, total, finished); 121197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch }, 122197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch 123197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch resetProfiles: function() 124197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch { 125197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch this._heapProfilerModel.resetProfiles(); 126197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch } 127197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch}