openfl
Version:
A fast, productive library for 2D cross-platform development.
116 lines (98 loc) • 2.75 kB
JavaScript
// Class: lime.system.JobList
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = require("./../../hxClasses_stub").default;
var $hxEnums = require("./../../hxEnums_stub").default;
var $import = require("./../../import_stub").default;
function HxOverrides() {return require("./../../HxOverrides");}
function lime_system_ThreadPool() {return require("./../../lime/system/ThreadPool");}
// Constructor
var JobList = function(pool) {
this.__jobs = [];
this.__index = 0;
this.pool = pool;
this.__addingWorkPriority = false;
}
// Meta
JobList.__name__ = "lime.system.JobList";
JobList.__isInterface__ = false;
JobList.prototype = {
clear: function() {
this.__jobs.length = 0;
this.set___addingWorkPriority(false);
},
exists: function(job) {
return this.get(job.id) != null;
},
hasNext: function() {
return this.__jobs.length > 0;
},
next: function() {
this.__index++;
if(this.__index >= this.get_length()) {
this.__index = 0;
}
return this.__jobs[this.__index];
},
pop: function() {
var job = this.__jobs.pop();
this.set___addingWorkPriority(this.get_length() > 0);
return job;
},
remove: function(job) {
if((HxOverrides().default).remove(this.__jobs,job)) {
this.set___addingWorkPriority(this.get_length() > 0);
return true;
} else if(this.removeByID(job.id)) {
return true;
} else {
return false;
}
},
removeByID: function(id) {
if((HxOverrides().default).remove(this.__jobs,this.get(id))) {
this.set___addingWorkPriority(this.get_length() > 0);
return true;
} else {
return false;
}
},
get: function(id) {
var _g = 0;
var _g1 = this.__jobs;
while(_g < _g1.length) {
var job = _g1[_g];
++_g;
if(job.id == id) {
return job;
}
}
return null;
},
push: function(job) {
this.__jobs.push(job);
this.set___addingWorkPriority(true);
},
set___addingWorkPriority: function(value) {
if(this.pool != null && this.__addingWorkPriority != value && (lime_system_ThreadPool().default).isMainThread()) {
if(value) {
(lime_system_ThreadPool().default).__totalWorkPriority += this.pool.workPriority;
} else {
(lime_system_ThreadPool().default).__totalWorkPriority -= this.pool.workPriority;
}
return this.__addingWorkPriority = value;
} else {
return this.__addingWorkPriority;
}
},
get_length: function() {
return this.__jobs.length;
}
};
JobList.prototype.__class__ = JobList.prototype.constructor = $hxClasses["lime.system.JobList"] = JobList;
// Init
// Statics
// Export
exports.default = JobList;