initial commit
This commit is contained in:
+32
@@ -0,0 +1,32 @@
|
||||
export class NodeHttp2ConnectionPool {
|
||||
sessions = [];
|
||||
constructor(sessions) {
|
||||
this.sessions = 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user