From a347bf95bb9dbdbda3fe5fb19916d5ef5f5aea1b Mon Sep 17 00:00:00 2001 From: "Harish.K" Date: Sun, 26 Apr 2015 19:29:57 +0530 Subject: [PATCH] * Code cleanup * set default functions that thows unimplemented method error for required functions instead of null --- src/JobManager.js | 38 +++++++++++++++++++++++--------------- 1 file changed, 23 insertions(+), 15 deletions(-) diff --git a/src/JobManager.js b/src/JobManager.js index 1ac8ce5..752843e 100644 --- a/src/JobManager.js +++ b/src/JobManager.js @@ -4,6 +4,19 @@ var utils = require('./utils'); var STATE = utils.createEnum([ 'RUNNING', 'PAUSED', 'NOT_RUNNING']); +var defaultOnErrorFn = function(task, worker, cb ){ + var e = Error( 'onError function is not implemented' ); + throw ( e ); +}; +var defaultonLoadMoreFn = function(task, worker, cb ){ + var e = Error( 'onLoadMore function is not implemented' ); + throw ( e ); +}; +var defaultWorkFn = function(task, worker, cb ){ + var e = Error( 'Work function is not implemented' ); + throw ( e ); +}; + function JobManager(opts){ opts = opts || {}; @@ -11,27 +24,21 @@ function JobManager(opts){ this.notifyAt = opts.notifyAt|| 3; this.concurrency = opts.concurrency || 20; this.minConcurrency = opts.minConcurrency != null ? opts.minConcurrency : 2; + this.workers = opts.workers || []; + this.tasks = opts.tasks || []; + this.work = opts.work || defaultWorkFn; + this.onLoadMore = opts.onLoadMore || defaultonLoadMoreFn; + this.onError = opts.onError || defaultOnErrorFn; // state this.state = STATE.NOT_RUNNING; - this.workers = []; - this.tasks = []; - this.work = null; - this.onLoadMore = null; - this.onError = null; this.isLoadingTakingPlace = false; this.endReached = false; this.runningTasks = 0; this.tmpPoolLen=0; this.tmpPool = []; } -/* - * JobManager.prototype.__defineSetter__( 'workers', function(workers){ - * this.$workers = workers; - * this.updateState(); - * }); - */ JobManager.prototype.updateState = function(){ var workers = this.workers; @@ -84,7 +91,7 @@ JobManager.prototype.$doWork_ = function( cb ){ self.$onLoadMore(); } } - if( task == undefined ){ + if( task === undefined ){ if(this.isLoadingTakingPlace){ this.pause(); } else { @@ -108,10 +115,11 @@ JobManager.prototype.$doWork_ = function( cb ){ JobManager.prototype.$trigger = function (){ var self = this; + var cb = function (){ + self.$trigger(); + }; while( this.runningTasks < this.concurrency && this.state === STATE.RUNNING ){ - this.$doWork_( function(){ - self.$trigger(); - }); + this.$doWork_(cb); } };