From dfac8009ea2eaae89b64d40caa513c54f3c03181 Mon Sep 17 00:00:00 2001 From: Sam Anthony Date: Mon, 2 Dec 2024 16:58:19 -0500 Subject: FE: compare responses --- src/main/java/derms/ReplicaManager.java | 2 ++ src/main/java/derms/Request.java | 5 +++++ src/main/java/derms/Response.java | 20 ++++++++++++++++++++ src/main/java/derms/frontend/DERMSServerImpl.java | 6 +++++- src/main/java/derms/frontend/FE.java | 1 + src/main/java/derms/replica2/Replica2.java | 2 +- src/main/java/derms/replica3/Replica3.java | 2 +- 7 files changed, 35 insertions(+), 3 deletions(-) diff --git a/src/main/java/derms/ReplicaManager.java b/src/main/java/derms/ReplicaManager.java index 71c22e2..85cdbe8 100644 --- a/src/main/java/derms/ReplicaManager.java +++ b/src/main/java/derms/ReplicaManager.java @@ -151,4 +151,6 @@ public class ReplicaManager { e.printStackTrace(); } } + + public int getReplicaId() { return replicaId; } } \ No newline at end of file diff --git a/src/main/java/derms/Request.java b/src/main/java/derms/Request.java index 80c7d5a..3b75db3 100644 --- a/src/main/java/derms/Request.java +++ b/src/main/java/derms/Request.java @@ -14,6 +14,7 @@ public class Request implements MessagePayload { private int sequenceNumber = 0; private String MessageType = "00"; private int retryCount = 1; + private int reqId; public Request(String function, String clientID) { setFunction(function); @@ -123,6 +124,10 @@ public class Request implements MessagePayload { retryCount--; } + public int getId() { return reqId; } + + public void setId(int id) { reqId = id; } + //Message Format: Sequence_id;FrontIpAddress;Message_Type;function(addResource,...);userID; newEventID;newEventType; oldEventID; oldEventType;bookingCapacity @Override public String toString() { diff --git a/src/main/java/derms/Response.java b/src/main/java/derms/Response.java index c9787f8..28a2bbd 100644 --- a/src/main/java/derms/Response.java +++ b/src/main/java/derms/Response.java @@ -15,6 +15,7 @@ public class Response implements MessagePayload { private int duration = 0; private String udpMessage = ""; private boolean isSuccess = false; + private int requestId; public Response(String udpMessage) { setUdpMessage(udpMessage.trim()); @@ -44,6 +45,15 @@ public class Response implements MessagePayload { setDuration(1); } + public Response(Request req, int rmNumber, String response, boolean isSuccess) { + this.sequenceID = req.getSequenceNumber(); + this.response = response; + this.rmNumber = rmNumber; + this.function = req.getFunction(); + this.isSuccess = isSuccess; + this.requestId = req.getId(); + } + @Override public int hash() { return sequenceID + response.hashCode() + rmNumber + function.hashCode() @@ -153,6 +163,10 @@ public class Response implements MessagePayload { return isSuccess; } + public int getRequestId() { return requestId; } + + public void setRequestId(int id) { requestId = id; } + @Override public boolean equals(Object obj) { if (obj != null) { @@ -167,4 +181,10 @@ public class Response implements MessagePayload { } return false; } + + //Message Format: Sequence_id;FrontIpAddress;Message_Type;function(addResource,...);userID; newEventID;newEventType; oldEventID; oldEventType;bookingCapacity + @Override + public String toString() { + return getResponse(); + } } diff --git a/src/main/java/derms/frontend/DERMSServerImpl.java b/src/main/java/derms/frontend/DERMSServerImpl.java index 663bc47..fda6717 100644 --- a/src/main/java/derms/frontend/DERMSServerImpl.java +++ b/src/main/java/derms/frontend/DERMSServerImpl.java @@ -171,7 +171,11 @@ public class DERMSServerImpl implements DERMSInterface { Response res3 = null; Response res4 = null; for (Response response :responses) { - if (response.getSequenceID() == request.getSequenceNumber()) { + System.out.println("Response: " + response.getResponse()); + System.out.println("Response ID: " + response.getRequestId()); + System.out.println("Request ID: " + request.getId()); + System.out.println("Response RM number: " + response.getRmNumber()); + if (response.getRequestId() == request.getId()) { switch (response.getRmNumber()) { case 1: res1 = response; diff --git a/src/main/java/derms/frontend/FE.java b/src/main/java/derms/frontend/FE.java index 2665116..8d6fc59 100644 --- a/src/main/java/derms/frontend/FE.java +++ b/src/main/java/derms/frontend/FE.java @@ -100,6 +100,7 @@ public class FE { private static int sendUnicastToSequencer(Request requestFromClient) { int sequenceID = sequenceIDGenerator.incrementAndGet(); + requestFromClient.setId(sequenceID); try { sequencerSock.send(requestFromClient); } catch (IOException e) { diff --git a/src/main/java/derms/replica2/Replica2.java b/src/main/java/derms/replica2/Replica2.java index e004fe6..251754d 100644 --- a/src/main/java/derms/replica2/Replica2.java +++ b/src/main/java/derms/replica2/Replica2.java @@ -144,7 +144,7 @@ public class Replica2 implements Replica { status = "Failure: " + request.getFunction() + ": " + e.getMessage(); } - Response response = new Response(request.getSequenceNumber(), status); + Response response = new Response(request, replicaManager.getReplicaId(), status, false); // TODO: isSuccess flag log.info("Processed request " + request + "; response: " + response); replicaManager.sendResponseToFE(response); } diff --git a/src/main/java/derms/replica3/Replica3.java b/src/main/java/derms/replica3/Replica3.java index 9994d82..34891f7 100644 --- a/src/main/java/derms/replica3/Replica3.java +++ b/src/main/java/derms/replica3/Replica3.java @@ -93,7 +93,7 @@ public class Replica3 implements Replica{ status = "Failure: " + request.getFunction() + ": " + e.getMessage(); } - Response response = new Response(request.getSequenceNumber(), status); + Response response = new Response(request, replicaManager.getReplicaId(), status, false); // TODO // log.info("Processed request " + request + "; response: " + response); replicaManager.sendResponseToFE(response); } -- cgit v1.2.3