Changed enum names and added reference to joblist.

This commit is contained in:
WickedJack99
2024-04-06 20:41:30 +02:00
parent 930fec8efc
commit 53e859704a

View File

@@ -6,7 +6,7 @@ package vslab1.src.Request;
import vslab1.src.Terminatable;
import vslab1.src.FileReaderWriter.FileReaderWriter;
import vslab1.src.FileReaderWriter.FileReaderWriter.EUpdated;
import vslab1.src.FileReaderWriter.FileReaderWriter.EUpdateFlag;
import vslab1.src.Peers.EOnlineState;
import vslab1.src.Peers.Peer;
import vslab1.src.Receiving.ReceivedData;
@@ -19,6 +19,7 @@ import vslab1.src.Request.Data.PullFileRequestRequest;
import vslab1.src.Request.Data.Requestable;
import vslab1.src.Request.Data.SendFileReplyRequest;
import vslab1.src.Sending.SendingQueue;
import vslab1.src.Timeout.JobList;
import org.json.JSONObject;
@@ -29,9 +30,13 @@ public class RequestExecuterThread extends Thread implements Terminatable {
private SendingQueue sendingQueue = null;
private ReceivingQueue receivingQueue = null;
public RequestExecuterThread(SendingQueue sendingQueue, ReceivingQueue receivingQueue) {
private JobList jobList = null;
public RequestExecuterThread(SendingQueue sendingQueue, ReceivingQueue receivingQueue, JobList jobList) {
this.sendingQueue = sendingQueue;
this.receivingQueue = receivingQueue;
this.jobList = jobList;
}
@Override
@@ -42,7 +47,7 @@ public class RequestExecuterThread extends Thread implements Terminatable {
JSONObject receivedDataAsJSONObject = new JSONObject(receivedData.data());
Requestable request = toRequestable(receivedDataAsJSONObject);
Requestable request = toRequestable(receivedDataAsJSONObject, jobList);
if (request != null) {
request.execute(sendingQueue);
}
@@ -59,15 +64,15 @@ public class RequestExecuterThread extends Thread implements Terminatable {
this.interrupt();
}
private static Requestable toRequestable(JSONObject receivedData) {
private static Requestable toRequestable(JSONObject receivedData, JobList jobList) {
if (receivedData.has("onlineState")) {
String onlineState = receivedData.getString("onlineState");
switch (onlineState) {
case "": {
return new OnlineStateNotificationRequest(parseIPPortField(receivedData), FileReaderWriter.getThisPeer(EUpdated.NotUpdated));
return new OnlineStateNotificationRequest(parseIPPortField(receivedData), FileReaderWriter.getThisPeer(EUpdateFlag.DoNotUpdate), jobList);
}
case "online": {
return new OnlineStateRequestRequest(parseIPPortField(receivedData), FileReaderWriter.getThisPeer(EUpdated.NotUpdated));
return new OnlineStateRequestRequest(parseIPPortField(receivedData), FileReaderWriter.getThisPeer(EUpdateFlag.DoNotUpdate));
}
default: {
System.err.println("Unknown online state.");
@@ -76,21 +81,21 @@ public class RequestExecuterThread extends Thread implements Terminatable {
}
}
if (receivedData.has("pullFileList")) {
return new PullFileListRequestRequest(parseIPPortField(receivedData), FileReaderWriter.getThisPeer(EUpdated.Updated));
return new PullFileListRequestRequest(parseIPPortField(receivedData), FileReaderWriter.getThisPeer(EUpdateFlag.Update));
}
if (receivedData.has("publishFileName")) {
String fileName = receivedData.getString("publishFileName");
return new PublishFileNameNotificationRequest(parseIPPortField(receivedData), FileReaderWriter.getThisPeer(EUpdated.NotUpdated), fileName);
return new PublishFileNameNotificationRequest(parseIPPortField(receivedData), FileReaderWriter.getThisPeer(EUpdateFlag.DoNotUpdate), fileName);
}
if (receivedData.has("pullFile")) {
String fileName = receivedData.getString("pullFile");
return new PullFileRequestRequest(parseIPPortField(receivedData), FileReaderWriter.getThisPeer(EUpdated.NotUpdated), fileName);
return new PullFileRequestRequest(parseIPPortField(receivedData), FileReaderWriter.getThisPeer(EUpdateFlag.DoNotUpdate), fileName);
}
if (receivedData.has("sendFile")) {
String fileContent = receivedData.getString("sendFile");
String fileName = receivedData.getString("fileName");
return new SendFileReplyRequest(parseIPPortField(receivedData), FileReaderWriter.getThisPeer(EUpdated.NotUpdated), fileName, fileContent);
return new SendFileReplyRequest(parseIPPortField(receivedData), FileReaderWriter.getThisPeer(EUpdateFlag.DoNotUpdate), fileName, fileContent);
}
return null;
}