UNPKG

node-opcua-server

Version:

pure nodejs OPCUA SDK - module server

72 lines 1.93 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Queue = void 0; // tslint:disable-next-line:no-var-requires const Dequeue = require("dequeue"); class Queue { constructor() { this._d = new Dequeue(); this.size = 0; } clear() { this.size = 0; } first() { if (this.size === 0) { return undefined; } return this._d.first(); } shift() { if (this.size === 0) { return undefined; } this.size -= 1; return this._d.shift(); } push(value) { this.size += 1; this._d.push(value); } filterOut(predicate) { let counter = 0; let p = this._d.head.next; while (p != this._d.head) { const shouldRemove = predicate(p.data); const pPrev = p; p = p.next; if (shouldRemove) { this.size -= 1; counter += 1; pPrev.remove(); } } return counter; } values() { // eslint-disable-next-line @typescript-eslint/no-this-alias const self = this; const iteratable = { [Symbol.iterator]() { let cursor = self._d.head; const iterator = { next() { cursor = cursor.next; if (cursor === self._d.head) { return { done: true, value: null }; } const ret = { done: false, value: cursor.data }; return ret; } }; return iterator; } }; return iteratable; } } exports.Queue = Queue; //# sourceMappingURL=queue.js.map