Add: Integrate CommandRouter into SessionManager for request routing

This commit is contained in:
Lars Simon Winzer
2026-03-26 17:57:00 +01:00
parent a520f69f3e
commit d25f533ee9
@@ -1,5 +1,6 @@
package ch.unibas.dmi.dbis.cs108.casono.server.network.sessions; package ch.unibas.dmi.dbis.cs108.casono.server.network.sessions;
import ch.unibas.dmi.dbis.cs108.casono.server.network.command.CommandRouter;
import ch.unibas.dmi.dbis.cs108.casono.server.network.events.DisconnectEvent; import ch.unibas.dmi.dbis.cs108.casono.server.network.events.DisconnectEvent;
import ch.unibas.dmi.dbis.cs108.casono.server.network.events.EventBus; import ch.unibas.dmi.dbis.cs108.casono.server.network.events.EventBus;
import ch.unibas.dmi.dbis.cs108.casono.server.network.parser.CommandParserDispatcher; import ch.unibas.dmi.dbis.cs108.casono.server.network.parser.CommandParserDispatcher;
@@ -16,13 +17,15 @@ public class SessionManager {
private final EventBus eventBus; private final EventBus eventBus;
private final Logger logger; private final Logger logger;
private final CommandParserDispatcher dispatcher; private final CommandParserDispatcher dispatcher;
private final CommandRouter router;
/** Constructs a new SessionManager. */ /** Constructs a new SessionManager. */
public SessionManager(EventBus eventBus, CommandParserDispatcher dispatcher) { public SessionManager(EventBus eventBus, CommandParserDispatcher dispatcher, CommandRouter router) {
this.sessions = new ConcurrentHashMap<>(); this.sessions = new ConcurrentHashMap<>();
this.eventBus = eventBus; this.eventBus = eventBus;
this.logger = LogManager.getLogger(SessionManager.class); this.logger = LogManager.getLogger(SessionManager.class);
this.dispatcher = dispatcher; this.dispatcher = dispatcher;
this.router = router;
} }
/** /**
@@ -34,7 +37,7 @@ public class SessionManager {
* @return newly created session * @return newly created session
*/ */
public Session create(TransportLayer transport) { public Session create(TransportLayer transport) {
Session session = new Session(transport, eventBus, dispatcher); Session session = new Session(transport, eventBus, dispatcher, router);
SessionReader reader = new SessionReader(session, eventBus); SessionReader reader = new SessionReader(session, eventBus);
SessionWriter writer = new SessionWriter(session); SessionWriter writer = new SessionWriter(session);