123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186 |
- 'use strict';
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- define(['underscore'], function (_) {
- 'use strict';
- return function () {
- function VisRenderTrace(renderState) {
- _classCallCheck(this, VisRenderTrace);
-
- this._enabledTrace = false;
- this._trace = {};
- this._renderState = renderState;
- }
-
- VisRenderTrace.prototype.enable = function enable() {
- var _enable = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
- return this._enabledTrace = _enable;
- };
-
- VisRenderTrace.prototype.clear = function clear() {
- return this._trace = {};
- };
-
- VisRenderTrace.prototype.getTrace = function getTrace() {
- return this._trace;
- };
-
- VisRenderTrace.prototype.startRender = function startRender(tasks, renderContext, options) {
- var _this = this;
- if (this._enabledTrace) {
- var renderId = renderContext.id;
-
- if (this._trace[renderId] === undefined) {
- this._trace[renderId] = {
- options: options,
- steps: []
- };
- }
-
- _.each(tasks, function (task) {
- _this._trace[renderId].steps.push({
- step: task.id
- });
- });
- }
- };
-
- VisRenderTrace.prototype.startTask = function startTask(task, renderContext) {
- if (this._enabledTrace) {
- var trace = this._getRenderTaskTrace(renderContext.id, task.id);
- if (trace) {
-
- trace.start = new Date().toISOString();
- }
- }
- };
-
- VisRenderTrace.prototype.taskDependency = function taskDependency(task, renderContext, dependency) {
- if (this._enabledTrace) {
- var trace = this._getRenderTaskTrace(renderContext.id, task.id);
- if (trace) {
- if (trace.dependencies === undefined) {
- trace.dependencies = [];
- }
- trace.dependencies.push(dependency);
- }
- }
- };
-
- VisRenderTrace.prototype.endTask = function endTask(task, renderContext, status, err) {
- if (this._enabledTrace) {
- var trace = this._getRenderTaskTrace(renderContext.id, task.id);
- if (trace) {
-
- trace.end = new Date().toISOString();
- trace.status = status;
- trace.currentContext = _.clone(this._renderState._currentContext);
-
- if (err) {
- trace.error = err;
- }
-
- var renderTrace = this._getRenderTrace(renderContext.id);
- if (renderTrace) {
- renderTrace.elapsed = new Date(trace.end).getTime() - new Date(renderTrace.steps[0].start).getTime();
- }
- }
- }
- };
-
- VisRenderTrace.prototype._getRenderTrace = function _getRenderTrace(renderId) {
- return this._trace[renderId];
- };
-
- VisRenderTrace.prototype._getRenderTaskTrace = function _getRenderTaskTrace(renderId, taskId) {
- var renderTrace = this._getRenderTrace(renderId);
- if (renderTrace) {
- return _.find(renderTrace.steps, function (entry) {
- return entry.step === taskId;
- });
- }
- };
- return VisRenderTrace;
- }();
- });
|