@jsprismarine/raknet
Version:
Basic RakNet implementation written in TypeScript
33 lines (32 loc) • 2.77 kB
JavaScript
import ACK from "./ACK.es.js";
import FrameSet from "./FrameSet.es.js";
import NACK from "./NACK.es.js";
//#region src/protocol/PacketPool.ts
var PacketPool = class {
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);
}
};
//#endregion
export { PacketPool as default };
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGFja2V0UG9vbC5lcy5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJvdG9jb2wvUGFja2V0UG9vbC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQUNLIGZyb20gJy4vQUNLJztcbmltcG9ydCBGcmFtZVNldCBmcm9tICcuL0ZyYW1lU2V0JztcbmltcG9ydCBOQUNLIGZyb20gJy4vTkFDSyc7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFBhY2tldFBvb2wge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgYWNrUG9vbDogQUNLW10gPSBbXTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IG5hY2tQb29sOiBOQUNLW10gPSBbXTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZyYW1lc2V0UG9vbDogRnJhbWVTZXRbXSA9IFtdO1xuXG4gICAgcHVibGljIGdldEFja0luc3RhbmNlKCk6IEFDSyB7XG4gICAgICAgIHJldHVybiB0aGlzLmFja1Bvb2wucG9wKCkgPz8gbmV3IEFDSygpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXROYWNrSW5zdGFuY2UoKTogTkFDSyB7XG4gICAgICAgIHJldHVybiB0aGlzLm5hY2tQb29sLnBvcCgpID8/IG5ldyBOQUNLKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEZyYW1lU2V0SW5zdGFuY2UoKTogRnJhbWVTZXQge1xuICAgICAgICByZXR1cm4gdGhpcy5mcmFtZXNldFBvb2wucG9wKCkgPz8gbmV3IEZyYW1lU2V0KCk7XG4gICAgfVxuXG4gICAgcHVibGljIHJldHVybkFjayhhY2s6IEFDSyk6IHZvaWQge1xuICAgICAgICB0aGlzLmFja1Bvb2wucHVzaChhY2spO1xuICAgIH1cblxuICAgIHB1YmxpYyByZXR1cm5OYWNrKG5hY2s6IE5BQ0spOiB2b2lkIHtcbiAgICAgICAgdGhpcy5uYWNrUG9vbC5wdXNoKG5hY2spO1xuICAgIH1cblxuICAgIHB1YmxpYyByZXR1cm5GcmFtZVNldChmcmFtZVNldDogRnJhbWVTZXQpOiB2b2lkIHtcbiAgICAgICAgZnJhbWVTZXQuZnJhbWVzID0gW107XG4gICAgICAgIGZyYW1lU2V0LnNlcXVlbmNlTnVtYmVyID0gLTE7XG4gICAgICAgIHRoaXMuZnJhbWVzZXRQb29sLnB1c2goZnJhbWVTZXQpO1xuICAgIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7OztBQUlBLElBQXFCLGFBQXJCLE1BQWdDO0NBQzVCLFVBQWtDLENBQUM7Q0FDbkMsV0FBb0MsQ0FBQztDQUNyQyxlQUE0QyxDQUFDO0NBRTdDLGlCQUE2QjtFQUN6QixPQUFPLEtBQUssUUFBUSxJQUFJLEtBQUssSUFBSSxJQUFJO0NBQ3pDO0NBRUEsa0JBQStCO0VBQzNCLE9BQU8sS0FBSyxTQUFTLElBQUksS0FBSyxJQUFJLEtBQUs7Q0FDM0M7Q0FFQSxzQkFBdUM7RUFDbkMsT0FBTyxLQUFLLGFBQWEsSUFBSSxLQUFLLElBQUksU0FBUztDQUNuRDtDQUVBLFVBQWlCLEtBQWdCO0VBQzdCLEtBQUssUUFBUSxLQUFLLEdBQUc7Q0FDekI7Q0FFQSxXQUFrQixNQUFrQjtFQUNoQyxLQUFLLFNBQVMsS0FBSyxJQUFJO0NBQzNCO0NBRUEsZUFBc0IsVUFBMEI7RUFDNUMsU0FBUyxTQUFTLENBQUM7RUFDbkIsU0FBUyxpQkFBaUI7RUFDMUIsS0FBSyxhQUFhLEtBQUssUUFBUTtDQUNuQztBQUNKIn0=