Generify smppSession

This commit is contained in:
David Majdandžić
2023-03-29 18:25:57 +02:00
parent d683ab870b
commit 330051382e
7 changed files with 215 additions and 297 deletions

View File

@@ -1,4 +1,3 @@
import EventEmitter from "events";
import Logger from "../Logger";
import {SessionManager} from "../SessionManager";
import {SmppSession} from "../SmppSession";
@@ -13,7 +12,6 @@ export class CenterSessionManager extends SessionManager {
sessions: Center[] = [];
identifier: string = "center";
readonly logger: Logger = new Logger("CenterSessionManager");
readonly eventEmitter: EventEmitter = new EventEmitter();
constructor() {
super();
@@ -21,44 +19,4 @@ export class CenterSessionManager extends SessionManager {
}
comparatorFn: (arg: any, session: SmppSession) => boolean = (arg: any, session: SmppSession) => (session as Center).getPort() === arg;
createSession(port: number, username: string, password: string): Promise<SmppSession> {
return new Promise<SmppSession>((resolve, reject) => {
this.logger.log1(`Creating session with port ${port}`);
this.getExisting(port).then(s => {
resolve(s);
}, err => {
});
this.verifyPort(port, reject);
// this.verifyUsername(username, reject);
// this.verifyPassword(password, reject);
let client = new Center(this.sessionId++, port, username, password);
this.addSession(client).then(() => {
resolve(client);
});
});
}
getExisting(arg: any): Promise<SmppSession> {
return new Promise<SmppSession>((resolve, reject) => {
this.logger.log1(`Looking for session with port ${arg}...`);
let session: SmppSession | undefined = this.sessions.find((s: Center) => s.getPort() === arg);
if (session) {
this.logger.log1(`Found session with port ${arg}`);
resolve(session);
} else {
this.logger.log1(`Session with port ${arg} not found`);
reject(`Session with port ${arg} not found`);
}
});
}
private verifyPort(port: number, reject: (reason?: any) => void) {
if (!port) {
let error = `Request to make a new center failed because of missing port.`;
this.logger.log1(error);
reject(error);
}
}
}