@jsprismarine/raknet
Version:
Basic RakNet implementation written in TypeScript
38 lines (37 loc) • 3.07 kB
JavaScript
;
Object.defineProperties(exports, {
__esModule: { value: true },
[Symbol.toStringTag]: { value: "Module" }
});
const require_protocol_ACK = require("./ACK.cjs.cjs");
const require_protocol_FrameSet = require("./FrameSet.cjs.cjs");
const require_protocol_NACK = require("./NACK.cjs.cjs");
//#region src/protocol/PacketPool.ts
var PacketPool = class {
ackPool = [];
nackPool = [];
framesetPool = [];
getAckInstance() {
return this.ackPool.pop() ?? new require_protocol_ACK.default();
}
getNackInstance() {
return this.nackPool.pop() ?? new require_protocol_NACK.default();
}
getFrameSetInstance() {
return this.framesetPool.pop() ?? new require_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);
}
};
//#endregion
exports.default = PacketPool;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGFja2V0UG9vbC5janMuY2pzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm90b2NvbC9QYWNrZXRQb29sLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBBQ0sgZnJvbSAnLi9BQ0snO1xuaW1wb3J0IEZyYW1lU2V0IGZyb20gJy4vRnJhbWVTZXQnO1xuaW1wb3J0IE5BQ0sgZnJvbSAnLi9OQUNLJztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUGFja2V0UG9vbCB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBhY2tQb29sOiBBQ0tbXSA9IFtdO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgbmFja1Bvb2w6IE5BQ0tbXSA9IFtdO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZnJhbWVzZXRQb29sOiBGcmFtZVNldFtdID0gW107XG5cbiAgICBwdWJsaWMgZ2V0QWNrSW5zdGFuY2UoKTogQUNLIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWNrUG9vbC5wb3AoKSA/PyBuZXcgQUNLKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldE5hY2tJbnN0YW5jZSgpOiBOQUNLIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubmFja1Bvb2wucG9wKCkgPz8gbmV3IE5BQ0soKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0RnJhbWVTZXRJbnN0YW5jZSgpOiBGcmFtZVNldCB7XG4gICAgICAgIHJldHVybiB0aGlzLmZyYW1lc2V0UG9vbC5wb3AoKSA/PyBuZXcgRnJhbWVTZXQoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmV0dXJuQWNrKGFjazogQUNLKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYWNrUG9vbC5wdXNoKGFjayk7XG4gICAgfVxuXG4gICAgcHVibGljIHJldHVybk5hY2sobmFjazogTkFDSyk6IHZvaWQge1xuICAgICAgICB0aGlzLm5hY2tQb29sLnB1c2gobmFjayk7XG4gICAgfVxuXG4gICAgcHVibGljIHJldHVybkZyYW1lU2V0KGZyYW1lU2V0OiBGcmFtZVNldCk6IHZvaWQge1xuICAgICAgICBmcmFtZVNldC5mcmFtZXMgPSBbXTtcbiAgICAgICAgZnJhbWVTZXQuc2VxdWVuY2VOdW1iZXIgPSAtMTtcbiAgICAgICAgdGhpcy5mcmFtZXNldFBvb2wucHVzaChmcmFtZVNldCk7XG4gICAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFJQSxJQUFxQixhQUFyQixNQUFnQztDQUM1QixVQUFrQyxDQUFDO0NBQ25DLFdBQW9DLENBQUM7Q0FDckMsZUFBNEMsQ0FBQztDQUU3QyxpQkFBNkI7RUFDekIsT0FBTyxLQUFLLFFBQVEsSUFBSSxLQUFLLElBQUkscUJBQUEsUUFBSTtDQUN6QztDQUVBLGtCQUErQjtFQUMzQixPQUFPLEtBQUssU0FBUyxJQUFJLEtBQUssSUFBSSxzQkFBQSxRQUFLO0NBQzNDO0NBRUEsc0JBQXVDO0VBQ25DLE9BQU8sS0FBSyxhQUFhLElBQUksS0FBSyxJQUFJLDBCQUFBLFFBQVM7Q0FDbkQ7Q0FFQSxVQUFpQixLQUFnQjtFQUM3QixLQUFLLFFBQVEsS0FBSyxHQUFHO0NBQ3pCO0NBRUEsV0FBa0IsTUFBa0I7RUFDaEMsS0FBSyxTQUFTLEtBQUssSUFBSTtDQUMzQjtDQUVBLGVBQXNCLFVBQTBCO0VBQzVDLFNBQVMsU0FBUyxDQUFDO0VBQ25CLFNBQVMsaUJBQWlCO0VBQzFCLEtBQUssYUFBYSxLQUFLLFFBQVE7Q0FDbkM7QUFDSiJ9