Add SessionReader and SessionWriter worker threads for session #198

Merged
lars.winzer merged 20 commits from feat/session-reader-and-writer-thread into main 2026-03-20 17:39:44 +01:00
Showing only changes of commit 9e8ea37e88 - Show all commits
@@ -1,7 +1,5 @@
package ch.unibas.dmi.dbis.cs108.casono.server.network; package ch.unibas.dmi.dbis.cs108.casono.server.network;
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.sessions.SessionManager; import ch.unibas.dmi.dbis.cs108.casono.server.network.sessions.SessionManager;
import ch.unibas.dmi.dbis.cs108.casono.server.network.transport.TcpTransport; import ch.unibas.dmi.dbis.cs108.casono.server.network.transport.TcpTransport;
import java.io.IOException; import java.io.IOException;
@@ -17,23 +15,19 @@ public class NetworkManager implements Runnable {
private Thread thread; private Thread thread;
private Boolean running; private Boolean running;
private SessionManager sessionManager; private SessionManager sessionManager;
private EventBus eventBus;
/** /**
* Creates a new NetworkManager with the given port, session manager, and event bus. * Creates a new NetworkManager with the given port, session manager, and event bus.
* *
* @param port the port to listen on * @param port the port to listen on
* @param sessionManager the session manager to use * @param sessionManager the session manager to use
* @param eventBus the event bus for events
*/ */
public NetworkManager(Integer port, SessionManager sessionManager, EventBus eventBus) { public NetworkManager(Integer port, SessionManager sessionManager) {
this.port = port; this.port = port;
this.logger = LogManager.getLogger(NetworkManager.class); this.logger = LogManager.getLogger(NetworkManager.class);
this.thread = new Thread(this, "networkManager"); this.thread = new Thread(this, "networkManager");
this.running = true; this.running = true;
this.sessionManager = sessionManager; this.sessionManager = sessionManager;
this.eventBus = eventBus;
this.eventBus.subscribe(DisconnectEvent.class, event -> clientDisconnected(event));
} }
/** Starts the internal thread to accept new connections. */ /** Starts the internal thread to accept new connections. */
@@ -42,15 +36,6 @@ public class NetworkManager implements Runnable {
thread.start(); thread.start();
} }
/**
* Handles client disconnection events.
*
* @param event the disconnect event
*/
public void clientDisconnected(DisconnectEvent event) {
logger.info("Session {} disconnected", event.sessionId().value());
}
/** Runs the network manager loop, accepting connections. */ /** Runs the network manager loop, accepting connections. */
@Override @Override
public void run() { public void run() {