@jsprismarine/raknet
Version:
Basic RakNet implementation written in TypeScript
37 lines (32 loc) • 3.33 kB
JavaScript
;
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
const protocol_ACK = require('./ACK.cjs.cjs');
const protocol_FrameSet = require('./FrameSet.cjs.cjs');
const protocol_NACK = require('./NACK.cjs.cjs');
class PacketPool {
ackPool = [];
nackPool = [];
framesetPool = [];
getAckInstance() {
return this.ackPool.pop() ?? new protocol_ACK.default();
}
getNackInstance() {
return this.nackPool.pop() ?? new protocol_NACK.default();
}
getFrameSetInstance() {
return this.framesetPool.pop() ?? new protocol_FrameSet.default();
}
returnAck(ack) {
this.ackPool.push(ack);
}
returnNack(nack) {
this.nackPool.push(nack);
}
returnFrameSet(frameSet) {
frameSet.frames = [];
frameSet.sequenceNumber = -1;
this.framesetPool.push(frameSet);
}
}
exports.default = PacketPool;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGFja2V0UG9vbC5janMuY2pzIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJvdG9jb2wvUGFja2V0UG9vbC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQUNLIGZyb20gJy4vQUNLJztcbmltcG9ydCBGcmFtZVNldCBmcm9tICcuL0ZyYW1lU2V0JztcbmltcG9ydCBOQUNLIGZyb20gJy4vTkFDSyc7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFBhY2tldFBvb2wge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgYWNrUG9vbDogQUNLW10gPSBbXTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IG5hY2tQb29sOiBOQUNLW10gPSBbXTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZyYW1lc2V0UG9vbDogRnJhbWVTZXRbXSA9IFtdO1xuXG4gICAgcHVibGljIGdldEFja0luc3RhbmNlKCk6IEFDSyB7XG4gICAgICAgIHJldHVybiB0aGlzLmFja1Bvb2wucG9wKCkgPz8gbmV3IEFDSygpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXROYWNrSW5zdGFuY2UoKTogTkFDSyB7XG4gICAgICAgIHJldHVybiB0aGlzLm5hY2tQb29sLnBvcCgpID8/IG5ldyBOQUNLKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEZyYW1lU2V0SW5zdGFuY2UoKTogRnJhbWVTZXQge1xuICAgICAgICByZXR1cm4gdGhpcy5mcmFtZXNldFBvb2wucG9wKCkgPz8gbmV3IEZyYW1lU2V0KCk7XG4gICAgfVxuXG4gICAgcHVibGljIHJldHVybkFjayhhY2s6IEFDSyk6IHZvaWQge1xuICAgICAgICB0aGlzLmFja1Bvb2wucHVzaChhY2spO1xuICAgIH1cblxuICAgIHB1YmxpYyByZXR1cm5OYWNrKG5hY2s6IE5BQ0spOiB2b2lkIHtcbiAgICAgICAgdGhpcy5uYWNrUG9vbC5wdXNoKG5hY2spO1xuICAgIH1cblxuICAgIHB1YmxpYyByZXR1cm5GcmFtZVNldChmcmFtZVNldDogRnJhbWVTZXQpOiB2b2lkIHtcbiAgICAgICAgZnJhbWVTZXQuZnJhbWVzID0gW107XG4gICAgICAgIGZyYW1lU2V0LnNlcXVlbmNlTnVtYmVyID0gLTE7XG4gICAgICAgIHRoaXMuZnJhbWVzZXRQb29sLnB1c2goZnJhbWVTZXQpO1xuICAgIH1cbn1cbiJdLCJuYW1lcyI6WyJBQ0siLCJOQUNLIiwiRnJhbWVTZXQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBSUEsTUFBcUIsVUFBVyxDQUFBO0FBQUEsRUFDWCxVQUFpQixFQUFDO0FBQUEsRUFDbEIsV0FBbUIsRUFBQztBQUFBLEVBQ3BCLGVBQTJCLEVBQUM7QUFBQSxFQUV0QyxjQUFzQixHQUFBO0FBQ3pCLElBQUEsT0FBTyxJQUFLLENBQUEsT0FBQSxDQUFRLEdBQUksRUFBQSxJQUFLLElBQUlBLG9CQUFJLEVBQUE7QUFBQTtBQUN6QyxFQUVPLGVBQXdCLEdBQUE7QUFDM0IsSUFBQSxPQUFPLElBQUssQ0FBQSxRQUFBLENBQVMsR0FBSSxFQUFBLElBQUssSUFBSUMscUJBQUssRUFBQTtBQUFBO0FBQzNDLEVBRU8sbUJBQWdDLEdBQUE7QUFDbkMsSUFBQSxPQUFPLElBQUssQ0FBQSxZQUFBLENBQWEsR0FBSSxFQUFBLElBQUssSUFBSUMseUJBQVMsRUFBQTtBQUFBO0FBQ25ELEVBRU8sVUFBVSxHQUFnQixFQUFBO0FBQzdCLElBQUssSUFBQSxDQUFBLE9BQUEsQ0FBUSxLQUFLLEdBQUcsQ0FBQTtBQUFBO0FBQ3pCLEVBRU8sV0FBVyxJQUFrQixFQUFBO0FBQ2hDLElBQUssSUFBQSxDQUFBLFFBQUEsQ0FBUyxLQUFLLElBQUksQ0FBQTtBQUFBO0FBQzNCLEVBRU8sZUFBZSxRQUEwQixFQUFBO0FBQzVDLElBQUEsUUFBQSxDQUFTLFNBQVMsRUFBQztBQUNuQixJQUFBLFFBQUEsQ0FBUyxjQUFpQixHQUFBLEVBQUE7QUFDMUIsSUFBSyxJQUFBLENBQUEsWUFBQSxDQUFhLEtBQUssUUFBUSxDQUFBO0FBQUE7QUFFdkM7Ozs7In0=