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());