From 8313a3b7770bc91513685744f6d852dc383e0fc4 Mon Sep 17 00:00:00 2001 From: Lars Simon Winzer Date: Sat, 28 Mar 2026 13:01:13 +0100 Subject: [PATCH] Add: lastActivity field to Session and update from SessionReader --- .../cs108/casono/server/network/sessions/Session.java | 11 +++++++++++ .../casono/server/network/sessions/SessionReader.java | 1 + 2 files changed, 12 insertions(+) diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/network/sessions/Session.java b/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/network/sessions/Session.java index d6e2094..4cdda34 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/network/sessions/Session.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/network/sessions/Session.java @@ -6,12 +6,14 @@ import ch.unibas.dmi.dbis.cs108.casono.server.network.parser.CommandParserDispat import ch.unibas.dmi.dbis.cs108.casono.server.network.response.PrimitiveResponse; import ch.unibas.dmi.dbis.cs108.casono.server.network.transport.TransportLayer; import java.io.IOException; +import java.time.Instant; import java.util.concurrent.ArrayBlockingQueue; import java.util.concurrent.BlockingQueue; /** Represents a client session in the network server. */ public class Session { private final SessionId id; + private Instant lastActivity; private final TransportLayer transport; private final BlockingQueue responseQueue; private final CommandParserDispatcher dispatcher; @@ -31,6 +33,7 @@ public class Session { CommandParserDispatcher dispatcher, CommandRouter router) { this.id = new SessionId(); + this.lastActivity = Instant.now(); this.transport = transport; this.dispatcher = dispatcher; this.router = router; @@ -46,6 +49,14 @@ public class Session { return this.id; } + public Instant getLastInboundActivity() { + return lastActivity; + } + + public void updateLastInboundActivity() { + this.lastActivity = Instant.now(); + } + /** * Returns the TransportLayer of this session * diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/network/sessions/SessionReader.java b/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/network/sessions/SessionReader.java index cd74de9..ad90468 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/network/sessions/SessionReader.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/network/sessions/SessionReader.java @@ -43,6 +43,7 @@ public class SessionReader implements Runnable { RawPacket rawPacket = null; try { rawPacket = transport.read(); + session.updateLastInboundActivity(); logger.debug("Recieved: {}", rawPacket); RawRequest rawRequest = ProtocolParser.parse(rawPacket.payload());