Server IP : 92.205.26.207 / Your IP : 216.73.216.16 Web Server : Apache System : Linux 207.26.205.92.host.secureserver.net 4.18.0-553.60.1.el8_10.x86_64 #1 SMP Thu Jul 10 04:01:16 EDT 2025 x86_64 User : zikryat ( 1002) PHP Version : 8.3.23 Disable Function : exec,passthru,shell_exec,system MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON Directory (0755) : /home/zikryat/public_html/node_modules/generic-pool/lib/ |
[ Home ] | [ C0mmand ] | [ Upload File ] |
---|
"use strict"; const Queue = require("./Queue"); /** * @class * @private */ class PriorityQueue { constructor(size) { this._size = Math.max(+size | 0, 1); /** @type {Queue[]} */ this._slots = []; // initialize arrays to hold queue elements for (let i = 0; i < this._size; i++) { this._slots.push(new Queue()); } } get length() { let _length = 0; for (let i = 0, slots = this._slots.length; i < slots; i++) { _length += this._slots[i].length; } return _length; } enqueue(obj, priority) { // Convert to integer with a default value of 0. priority = (priority && +priority | 0) || 0; if (priority) { if (priority < 0 || priority >= this._size) { priority = this._size - 1; // put obj at the end of the line } } this._slots[priority].push(obj); } dequeue() { for (let i = 0, sl = this._slots.length; i < sl; i += 1) { if (this._slots[i].length) { return this._slots[i].shift(); } } return; } get head() { for (let i = 0, sl = this._slots.length; i < sl; i += 1) { if (this._slots[i].length > 0) { return this._slots[i].head; } } return; } get tail() { for (let i = this._slots.length - 1; i >= 0; i--) { if (this._slots[i].length > 0) { return this._slots[i].tail; } } return; } } module.exports = PriorityQueue;