var Class = require('../utils/Class'); var ProcessQueue = new Class({ initialize: function ProcessQueue(){ this._pending = [] ; this._active = [] ; this._destroy = [] ; this._toProcess = 0; } , add: function (item){ this._pending.push(item); this._toProcess++ ; return this; } , remove: function (item){ this._destroy.push(item); this._toProcess++ ; return this; } , update: function (){ if (this._toProcess === 0) { return this._active; } var list = this._destroy; var active = this._active; var i; var item; for (i = 0; i < (_AN_Read_length('length', list)); i++ ){ item = list[i]; var idx = active.indexOf(item); if (idx !== -1) { active.splice(idx, 1); } } list.length = 0; list = this._pending; for (i = 0; i < (_AN_Read_length('length', list)); i++ ){ item = list[i]; this._active.push(item); } list.length = 0; this._toProcess = 0; return this._active; } , getActive: function (){ return this._active; } , destroy: function (){ this._pending = [] ; this._active = [] ; this._destroy = [] ; } } ); module.exports = ProcessQueue;