From 711de2e6aaa153066499e302355685fab7e7b0e0 Mon Sep 17 00:00:00 2001 From: Lars Simon Winzer Date: Thu, 12 Mar 2026 20:13:50 +0100 Subject: [PATCH] Add: Make use of SessionManager --- .../ch/unibas/dmi/dbis/cs108/casono/server/ServerApp.java | 6 +++++- .../dbis/cs108/casono/server/network/NetworkManager.java | 5 ++++- .../dbis/cs108/casono/server/network/SessionManager.java | 2 ++ 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/ServerApp.java b/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/ServerApp.java index d056413..c704d5e 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/ServerApp.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/ServerApp.java @@ -1,7 +1,9 @@ package ch.unibas.dmi.dbis.cs108.casono.server; +import ch.unibas.dmi.dbis.cs108.casono.server.network.DisconnectEvent; import ch.unibas.dmi.dbis.cs108.casono.server.network.EventBus; import ch.unibas.dmi.dbis.cs108.casono.server.network.NetworkManager; +import ch.unibas.dmi.dbis.cs108.casono.server.network.SessionManager; public class ServerApp { public static void start(String arg) { @@ -9,7 +11,9 @@ public class ServerApp { System.out.println("You've selected the server. It will accept connections at port " + port); EventBus eventBus = new EventBus(); - NetworkManager networkManager = new NetworkManager(port, eventBus); + SessionManager sessionManager = new SessionManager(); + eventBus.subscribe(DisconnectEvent.class, event -> sessionManager.removeSession(event.sessionId())); + NetworkManager networkManager = new NetworkManager(port, sessionManager, eventBus); networkManager.start(); } } diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/network/NetworkManager.java b/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/network/NetworkManager.java index 8699852..3e60e59 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/network/NetworkManager.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/network/NetworkManager.java @@ -15,13 +15,15 @@ public class NetworkManager implements Runnable { private Logger logger; private Thread thread; private Boolean running; + private SessionManager sessionManager; private EventBus eventBus; - public NetworkManager(Integer port, EventBus eventBus) { + public NetworkManager(Integer port, SessionManager sessionManager, EventBus eventBus) { this.port = port; this.logger = LogManager.getLogger(NetworkManager.class); this.thread = new Thread(this, "networkManager"); this.running = true; + this.sessionManager = sessionManager; this.eventBus = eventBus; this.eventBus.subscribe(DisconnectEvent.class, event -> clientDisconnected(event)); } @@ -46,6 +48,7 @@ public class NetworkManager implements Runnable { System.out.println("Accepted connection from " + clientSocket.getRemoteSocketAddress()); Session session = new Session(new TcpTransport(clientSocket), eventBus); + sessionManager.addSession(session); session.start(); } diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/network/SessionManager.java b/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/network/SessionManager.java index 3a794f9..69fcdbe 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/network/SessionManager.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/network/SessionManager.java @@ -12,9 +12,11 @@ public class SessionManager { public void addSession(Session session) { sessions.put(session.getId(), session); + System.out.println("Added session " + session.getId().value() + " to session manager"); } public Session removeSession(SessionId id) { + System.out.println("Removed session " + id.value() + " from session manager"); return sessions.remove(id); }