Implement processor R/W

This commit is contained in:
David Majdandžić
2023-04-05 20:02:47 +02:00
parent e0fd3a5c31
commit 6ce89f35be
2 changed files with 20 additions and 4 deletions

View File

@@ -2,6 +2,8 @@ import EventEmitter from "events";
import fs from "fs";
import Job from "./Job/Job";
import Logger from "./Logger";
import PduProcessor from "./PDUProcessor/PduProcessor";
import ProcessorManager from "./PDUProcessor/ProcessorManager";
import SmppSession from "./SmppSession";
export default abstract class SessionManager {
@@ -67,6 +69,18 @@ export default abstract class SessionManager {
this.createSession(session.url || session.port, session.username, session.password).then((sessionObj: SmppSession) => {
sessionObj.defaultSingleJob = Job.deserialize(session.defaultSingleJob);
sessionObj.defaultMultipleJob = Job.deserialize(session.defaultMultipleJob);
let loadedProcessors: PduProcessor[] = session.preprocessors.concat(session.postprocessors);
sessionObj.appliedProcessors.forEach((processor: PduProcessor) => {
if (!loadedProcessors.find(p => p.name === processor.name)) {
ProcessorManager.detachProcessor(sessionObj, processor);
}
});
loadedProcessors.forEach((processor: PduProcessor) => {
if (!sessionObj.appliedProcessors.find(p => p.name === processor.name)) {
ProcessorManager.attachProcessor(sessionObj, ProcessorManager.getProcessor(processor.name));
}
});
});
});
} catch (e) {

View File

@@ -3,6 +3,7 @@ import Client from "./Client/Client";
import ClientSessionManager from "./Client/ClientSessionManager";
import HttpServer from "./HttpServer/HttpServer";
import Logger from "./Logger";
import SourceEnumeratorProcessor from "./PDUProcessor/Preprocessor/Client/SourceEnumeratorProcessor";
import ProcessorManager from "./PDUProcessor/ProcessorManager";
import WSServer from "./WS/WSServer";
@@ -43,12 +44,13 @@ async function main() {
// await client.doConnect();
// await client.doBind();
// client.sendMultipleDefault();
ProcessorManager.attachProcessor(client, ProcessorManager.getProcessor(SourceEnumeratorProcessor.name));
console.log("OK");
}
main();
// process.on('exit', cleanup);
// process.on('SIGINT', cleanup);
// process.on('SIGUSR1', cleanup);
// process.on('SIGUSR2', cleanup);
process.on('exit', cleanup);
process.on('SIGINT', cleanup);
process.on('SIGUSR1', cleanup);
process.on('SIGUSR2', cleanup);