37 lines
1.0 KiB
JavaScript
37 lines
1.0 KiB
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.NodeHttp2ConnectionPool = void 0;
|
|
class NodeHttp2ConnectionPool {
|
|
constructor(sessions) {
|
|
this.sessions = [];
|
|
this.sessions = sessions !== null && sessions !== void 0 ? sessions : [];
|
|
}
|
|
poll() {
|
|
if (this.sessions.length > 0) {
|
|
return this.sessions.shift();
|
|
}
|
|
}
|
|
offerLast(session) {
|
|
this.sessions.push(session);
|
|
}
|
|
contains(session) {
|
|
return this.sessions.includes(session);
|
|
}
|
|
remove(session) {
|
|
this.sessions = this.sessions.filter((s) => s !== session);
|
|
}
|
|
[Symbol.iterator]() {
|
|
return this.sessions[Symbol.iterator]();
|
|
}
|
|
destroy(connection) {
|
|
for (const session of this.sessions) {
|
|
if (session === connection) {
|
|
if (!session.destroyed) {
|
|
session.destroy();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
exports.NodeHttp2ConnectionPool = NodeHttp2ConnectionPool;
|