summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSam Anthony <sam@samanthony.xyz>2024-12-02 16:58:19 -0500
committerSam Anthony <sam@samanthony.xyz>2024-12-02 16:58:19 -0500
commitdfac8009ea2eaae89b64d40caa513c54f3c03181 (patch)
tree3c59fc3c89b39e1bc23a515d5dfbcb42b59b983a
parent1ac7511cf337bc64f3a02ebbfd9c3214fa61a946 (diff)
downloadsoen423-dfac8009ea2eaae89b64d40caa513c54f3c03181.zip
FE: compare responses
-rw-r--r--src/main/java/derms/ReplicaManager.java2
-rw-r--r--src/main/java/derms/Request.java5
-rw-r--r--src/main/java/derms/Response.java20
-rw-r--r--src/main/java/derms/frontend/DERMSServerImpl.java6
-rw-r--r--src/main/java/derms/frontend/FE.java1
-rw-r--r--src/main/java/derms/replica2/Replica2.java2
-rw-r--r--src/main/java/derms/replica3/Replica3.java2
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);
}