diff --git a/src/main/java/vslab1/src/Request/RequestExecuterThread.java b/src/main/java/vslab1/src/Request/RequestExecuterThread.java index 8148e4d..10052e3 100644 --- a/src/main/java/vslab1/src/Request/RequestExecuterThread.java +++ b/src/main/java/vslab1/src/Request/RequestExecuterThread.java @@ -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; }