Sha256: f668e4becc093112fda449c53b5753925a668b20f83f6e2237ae503f07bbcf96

Contents?: true

Size: 1.17 KB

Versions: 6

Compression:

Stored size: 1.17 KB

Contents

/*global define*/
define(['require', 'Core/defined'], function(
        require,
        defined) {
    "use strict";

    var taskWorkerCache = {};

    /**
     * A worker that delegates tasks from a TaskProcessor to other workers by
     * inspecting the parameters for a "task" property, which is expected to be
     * the module ID of another worker.  This worker will load that worker, if not
     * already loaded, then pass the event to that worker.
     *
     * @exports taskDispatcher
     *
     * @see TaskProcessor
     * @see <a href='http://www.w3.org/TR/workers/'>Web Workers</a>
     * @see <a href='http://www.w3.org/TR/html5/common-dom-interfaces.html#transferable-objects'>Transferable objects</a>
     */
    var taskDispatcher = function(event) {
        var taskWorkerName = event.data.parameters.task;
        var taskWorker = taskWorkerCache[taskWorkerName];
        if (defined(taskWorker)) {
            taskWorker(event);
        } else {
            require(['./' + taskWorkerName], function(taskWorker) {
                taskWorkerCache[taskWorkerName] = taskWorker;
                taskWorker(event);
            });
        }
    };

    return taskDispatcher;
});

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
cesium-0.24.0 app/assets/javascripts/Workers/taskDispatcher.js
cesium-0.23.0 app/assets/javascripts/Workers/taskDispatcher.js
cesium-0.22.0 app/assets/javascripts/Workers/taskDispatcher.js
cesium-0.21.1 app/assets/javascripts/Workers/taskDispatcher.js
cesium-0.21 app/assets/javascripts/Workers/taskDispatcher.js
cesium-0.20.0 app/assets/javascripts/Workers/taskDispatcher.js