Add RequestContext to simplify creation of Request which requires SessionId and RequestId #201

Merged
lars.winzer merged 7 commits from feat/request-context-record into main 2026-03-24 18:29:28 +01:00
2 changed files with 6 additions and 7 deletions
Showing only changes of commit 34ad803073 - Show all commits
@@ -1,6 +1,5 @@
package ch.unibas.dmi.dbis.cs108.casono.server.network.parser;
import ch.unibas.dmi.dbis.cs108.casono.server.network.transport.RawPacket;
import ch.unibas.dmi.dbis.cs108.casono.server.tokenizer.RawToken;
import ch.unibas.dmi.dbis.cs108.casono.server.tokenizer.Token;
import ch.unibas.dmi.dbis.cs108.casono.server.tokenizer.TokenClassifier;
@@ -19,15 +18,15 @@ public class ProtocolParser {
* @param packet the RawPacket containing the recieved data
* @return created PrimitiveRequest
*/
public static PrimitiveRequest parse(RawPacket packet) {
List<RawToken> rawTokens = Tokenizer.tokenize(packet.payload());
public static RawRequest parse(String payload) {
List<RawToken> rawTokens = Tokenizer.tokenize(payload);
List<Token> tokens = TokenClassifier.classify(rawTokens);
Iterator<Token> iterator = tokens.iterator();
String command = readCommand(iterator);
List<Parameter> parameters = readParameters(iterator);
return new PrimitiveRequest(packet.requestId(), command, parameters);
return new RawRequest(command, parameters);
}
/**
@@ -2,9 +2,9 @@ package ch.unibas.dmi.dbis.cs108.casono.server.network.sessions;
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.parser.PrimitiveRequest;
import ch.unibas.dmi.dbis.cs108.casono.server.network.parser.ProtocolParser;
import ch.unibas.dmi.dbis.cs108.casono.server.network.parser.ProtocolParserException;
import ch.unibas.dmi.dbis.cs108.casono.server.network.parser.RawRequest;
import ch.unibas.dmi.dbis.cs108.casono.server.network.transport.RawPacket;
import ch.unibas.dmi.dbis.cs108.casono.server.network.transport.TransportLayer;
import ch.unibas.dmi.dbis.cs108.casono.server.tokenizer.TokenizerException;
@@ -36,8 +36,8 @@ public class SessionReader implements Runnable {
rawPacket = transport.read();
logger.debug("Recieved: {}", rawPacket);
PrimitiveRequest primitiveRequest = ProtocolParser.parse(rawPacket);
logger.debug("Parsed request to {}", primitiveRequest);
RawRequest rawRequest = ProtocolParser.parse(rawPacket.payload());
logger.debug("Parsed request to {}", rawRequest);
} catch (EOFException e) {
logger.info("Client disconnected");
eventBus.publish(new DisconnectEvent(session.getId()));