X-Git-Url: http://git.ithinksw.org/extjs.git/blobdiff_plain/2e847cf21b8ab9d15fa167b315ca5b2fa92638fc..6a7e4474cba9d8be4b2ec445e10f1691f7277c50:/src/util/core/TaskMgr.js diff --git a/src/util/core/TaskMgr.js b/src/util/core/TaskMgr.js deleted file mode 100644 index 7fc64769..00000000 --- a/src/util/core/TaskMgr.js +++ /dev/null @@ -1,174 +0,0 @@ -/*! - * Ext JS Library 3.1.1 - * Copyright(c) 2006-2010 Ext JS, LLC - * licensing@extjs.com - * http://www.extjs.com/license - */ -/** - * @class Ext.util.TaskRunner - * Provides the ability to execute one or more arbitrary tasks in a multithreaded - * manner. Generally, you can use the singleton {@link Ext.TaskMgr} instead, but - * if needed, you can create separate instances of TaskRunner. Any number of - * separate tasks can be started at any time and will run independently of each - * other. Example usage: - *
-// Start a simple clock task that updates a div once per second
-var updateClock = function(){
- Ext.fly('clock').update(new Date().format('g:i:s A'));
-}
-var task = {
- run: updateClock,
- interval: 1000 //1 second
-}
-var runner = new Ext.util.TaskRunner();
-runner.start(task);
-
-// equivalent using TaskMgr
-Ext.TaskMgr.start({
- run: updateClock,
- interval: 1000
-});
-
- *
- * Also see {@link Ext.util.DelayedTask}.
- *
- * @constructor
- * @param {Number} interval (optional) The minimum precision in milliseconds supported by this TaskRunner instance
- * (defaults to 10)
- */
-Ext.util.TaskRunner = function(interval){
- interval = interval || 10;
- var tasks = [],
- removeQueue = [],
- id = 0,
- running = false,
-
- // private
- stopThread = function(){
- running = false;
- clearInterval(id);
- id = 0;
- },
-
- // private
- startThread = function(){
- if(!running){
- running = true;
- id = setInterval(runTasks, interval);
- }
- },
-
- // private
- removeTask = function(t){
- removeQueue.push(t);
- if(t.onStop){
- t.onStop.apply(t.scope || t);
- }
- },
-
- // private
- runTasks = function(){
- var rqLen = removeQueue.length,
- now = new Date().getTime();
-
- if(rqLen > 0){
- for(var i = 0; i < rqLen; i++){
- tasks.remove(removeQueue[i]);
- }
- removeQueue = [];
- if(tasks.length < 1){
- stopThread();
- return;
- }
- }
- for(var i = 0, t, itime, rt, len = tasks.length; i < len; ++i){
- t = tasks[i];
- itime = now - t.taskRunTime;
- if(t.interval <= itime){
- rt = t.run.apply(t.scope || t, t.args || [++t.taskRunCount]);
- t.taskRunTime = now;
- if(rt === false || t.taskRunCount === t.repeat){
- removeTask(t);
- return;
- }
- }
- if(t.duration && t.duration <= (now - t.taskStartTime)){
- removeTask(t);
- }
- }
- };
-
- /**
- * Starts a new task.
- * @method start
- * @param {Object} task A config object that supports the following properties:run
: Functionargs
argument if specified. If a
- * particular scope is required, be sure to specify it using the scope
argument.interval
: Numberargs
: Arrayrun
.scope
: Objectrun
function. Defaults to the task config object.duration
: Numberrepeat
: Number
-// Start a simple clock task that updates a div once per second
-var task = {
- run: function(){
- Ext.fly('clock').update(new Date().format('g:i:s A'));
- },
- interval: 1000 //1 second
-}
-Ext.TaskMgr.start(task);
-
- * @singleton
- */
-Ext.TaskMgr = new Ext.util.TaskRunner();
\ No newline at end of file