UNPKG

@jsprismarine/raknet

Version:
33 lines (30 loc) 3.06 kB
import ACK from './ACK.es.js'; import FrameSet from './FrameSet.es.js'; import NACK from './NACK.es.js'; class PacketPool { ackPool = []; nackPool = []; framesetPool = []; getAckInstance() { return this.ackPool.pop() ?? new ACK(); } getNackInstance() { return this.nackPool.pop() ?? new NACK(); } getFrameSetInstance() { return this.framesetPool.pop() ?? new FrameSet(); } returnAck(ack) { this.ackPool.push(ack); } returnNack(nack) { this.nackPool.push(nack); } returnFrameSet(frameSet) { frameSet.frames = []; frameSet.sequenceNumber = -1; this.framesetPool.push(frameSet); } } export { PacketPool as default }; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGFja2V0UG9vbC5lcy5qcyIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Byb3RvY29sL1BhY2tldFBvb2wudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEFDSyBmcm9tICcuL0FDSyc7XG5pbXBvcnQgRnJhbWVTZXQgZnJvbSAnLi9GcmFtZVNldCc7XG5pbXBvcnQgTkFDSyBmcm9tICcuL05BQ0snO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBQYWNrZXRQb29sIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFja1Bvb2w6IEFDS1tdID0gW107XG4gICAgcHJpdmF0ZSByZWFkb25seSBuYWNrUG9vbDogTkFDS1tdID0gW107XG4gICAgcHJpdmF0ZSByZWFkb25seSBmcmFtZXNldFBvb2w6IEZyYW1lU2V0W10gPSBbXTtcblxuICAgIHB1YmxpYyBnZXRBY2tJbnN0YW5jZSgpOiBBQ0sge1xuICAgICAgICByZXR1cm4gdGhpcy5hY2tQb29sLnBvcCgpID8/IG5ldyBBQ0soKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0TmFja0luc3RhbmNlKCk6IE5BQ0sge1xuICAgICAgICByZXR1cm4gdGhpcy5uYWNrUG9vbC5wb3AoKSA/PyBuZXcgTkFDSygpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRGcmFtZVNldEluc3RhbmNlKCk6IEZyYW1lU2V0IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZnJhbWVzZXRQb29sLnBvcCgpID8/IG5ldyBGcmFtZVNldCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyByZXR1cm5BY2soYWNrOiBBQ0spOiB2b2lkIHtcbiAgICAgICAgdGhpcy5hY2tQb29sLnB1c2goYWNrKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmV0dXJuTmFjayhuYWNrOiBOQUNLKTogdm9pZCB7XG4gICAgICAgIHRoaXMubmFja1Bvb2wucHVzaChuYWNrKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmV0dXJuRnJhbWVTZXQoZnJhbWVTZXQ6IEZyYW1lU2V0KTogdm9pZCB7XG4gICAgICAgIGZyYW1lU2V0LmZyYW1lcyA9IFtdO1xuICAgICAgICBmcmFtZVNldC5zZXF1ZW5jZU51bWJlciA9IC0xO1xuICAgICAgICB0aGlzLmZyYW1lc2V0UG9vbC5wdXNoKGZyYW1lU2V0KTtcbiAgICB9XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUlBLE1BQXFCLFVBQVcsQ0FBQTtBQUFBLEVBQ1gsVUFBaUIsRUFBQztBQUFBLEVBQ2xCLFdBQW1CLEVBQUM7QUFBQSxFQUNwQixlQUEyQixFQUFDO0FBQUEsRUFFdEMsY0FBc0IsR0FBQTtBQUN6QixJQUFBLE9BQU8sSUFBSyxDQUFBLE9BQUEsQ0FBUSxHQUFJLEVBQUEsSUFBSyxJQUFJLEdBQUksRUFBQTtBQUFBO0FBQ3pDLEVBRU8sZUFBd0IsR0FBQTtBQUMzQixJQUFBLE9BQU8sSUFBSyxDQUFBLFFBQUEsQ0FBUyxHQUFJLEVBQUEsSUFBSyxJQUFJLElBQUssRUFBQTtBQUFBO0FBQzNDLEVBRU8sbUJBQWdDLEdBQUE7QUFDbkMsSUFBQSxPQUFPLElBQUssQ0FBQSxZQUFBLENBQWEsR0FBSSxFQUFBLElBQUssSUFBSSxRQUFTLEVBQUE7QUFBQTtBQUNuRCxFQUVPLFVBQVUsR0FBZ0IsRUFBQTtBQUM3QixJQUFLLElBQUEsQ0FBQSxPQUFBLENBQVEsS0FBSyxHQUFHLENBQUE7QUFBQTtBQUN6QixFQUVPLFdBQVcsSUFBa0IsRUFBQTtBQUNoQyxJQUFLLElBQUEsQ0FBQSxRQUFBLENBQVMsS0FBSyxJQUFJLENBQUE7QUFBQTtBQUMzQixFQUVPLGVBQWUsUUFBMEIsRUFBQTtBQUM1QyxJQUFBLFFBQUEsQ0FBUyxTQUFTLEVBQUM7QUFDbkIsSUFBQSxRQUFBLENBQVMsY0FBaUIsR0FBQSxFQUFBO0FBQzFCLElBQUssSUFBQSxDQUFBLFlBQUEsQ0FBYSxLQUFLLFFBQVEsQ0FBQTtBQUFBO0FBRXZDOzs7OyJ9