diff options
| author | BMatajsz <90217645+BMatajsz@users.noreply.github.com> | 2024-12-02 23:50:26 -0500 |
|---|---|---|
| committer | BMatajsz <90217645+BMatajsz@users.noreply.github.com> | 2024-12-02 23:50:26 -0500 |
| commit | c577b64ba33fca4fb5d879dc94a491b5003b0ae9 (patch) | |
| tree | ac31afa87fa9c76b424a3f40fef86f7df8ef6a01 /src | |
| parent | bc85d454e6c28638fc075ff37824a87445a8d49f (diff) | |
| download | soen423-c577b64ba33fca4fb5d879dc94a491b5003b0ae9.zip | |
Progress
Diffstat (limited to 'src')
| -rw-r--r-- | src/main/java/derms/Replica.java | 2 | ||||
| -rw-r--r-- | src/main/java/derms/ReplicaManager.java | 14 | ||||
| -rw-r--r-- | src/main/java/derms/replica1/Replica1.java | 4 | ||||
| -rw-r--r-- | src/main/java/derms/replica2/Replica2.java | 4 | ||||
| -rw-r--r-- | src/main/java/derms/replica3/Replica3.java | 4 |
5 files changed, 15 insertions, 13 deletions
diff --git a/src/main/java/derms/Replica.java b/src/main/java/derms/Replica.java index eae0014..a717064 100644 --- a/src/main/java/derms/Replica.java +++ b/src/main/java/derms/Replica.java @@ -2,7 +2,7 @@ package derms; public interface Replica { boolean isAlive(); - void startProcess(); + void startProcess(int byzantine, int crash); void processRequest(Request request); void restart(); int getId(); diff --git a/src/main/java/derms/ReplicaManager.java b/src/main/java/derms/ReplicaManager.java index 83c1897..d3ca1f9 100644 --- a/src/main/java/derms/ReplicaManager.java +++ b/src/main/java/derms/ReplicaManager.java @@ -21,7 +21,7 @@ import java.io.ObjectInputStream; import java.util.logging.Logger; public class ReplicaManager { - public static final String usage = "Usage: java ReplicaManager <replicaId> <city> <frontEndIP>"; + public static final String usage = "Usage: java ReplicaManager <replicaId> <city> <frontEndIP> <byzantine(0 or 1)> <crash(0 or 1)>"; private final int replicaId; private final String city; private Replica replica; @@ -31,12 +31,12 @@ public class ReplicaManager { private ReliableUnicastSender<Response> unicastSender; private TotalOrderMulticastReceiver multicastReceiver; - public ReplicaManager(int replicaId, String city, InetAddress frontEndIP) throws IOException { + public ReplicaManager(int replicaId, String city, InetAddress frontEndIP, int byzantine, int crash) throws IOException { this.replicaId = replicaId; this.city = city; this.log = Logger.getLogger(getClass().getName()); initUnicastSender(frontEndIP); - initReplica(); + initReplica(byzantine, crash); initMulticastReceiver(); startHeartbeatThread(); } @@ -47,7 +47,7 @@ public class ReplicaManager { unicastSender = new ReliableUnicastSender<>(frontEndAddress); } - private void initReplica() throws IOException { + private void initReplica(int byzantine, int crash) throws IOException { switch (replicaId) { case 1: replica = new Replica1(this); @@ -62,7 +62,7 @@ public class ReplicaManager { replica = new derms.replica2.Replica2(city, this); break; } - replica.startProcess(); + replica.startProcess(byzantine, crash); } private void initMulticastReceiver() throws IOException { @@ -146,7 +146,9 @@ public class ReplicaManager { int replicaId = Integer.parseInt(args[0]); String city = args[1]; InetAddress frontEndIP = InetAddress.getByName(args[2]); - ReplicaManager replicaManager = new ReplicaManager(replicaId, city, frontEndIP); + int byzantine = Integer.parseInt(args[3]); + int crash = Integer.parseInt(args[4]); + ReplicaManager replicaManager = new ReplicaManager(replicaId, city, frontEndIP, byzantine, crash); System.out.println("ReplicaManager " + replicaId + " is running."); } catch (IOException e) { System.err.println("Failed to start ReplicaManager: " + e.getMessage()); diff --git a/src/main/java/derms/replica1/Replica1.java b/src/main/java/derms/replica1/Replica1.java index 10c0ce5..7e10994 100644 --- a/src/main/java/derms/replica1/Replica1.java +++ b/src/main/java/derms/replica1/Replica1.java @@ -45,7 +45,7 @@ public class Replica1 implements Replica { } @Override - public void startProcess() { + public void startProcess(int byzantine, int crash) { pool.execute(DERMSServer::new); alive = true; log.info(getClass().getSimpleName() + " started."); @@ -70,7 +70,7 @@ public class Replica1 implements Replica { ThreadPool.shutdown(pool, log); alive = false; log.info("Finished shutting down."); - startProcess(); + startProcess(0, 0); } @Override diff --git a/src/main/java/derms/replica2/Replica2.java b/src/main/java/derms/replica2/Replica2.java index 3c9f764..9383cf5 100644 --- a/src/main/java/derms/replica2/Replica2.java +++ b/src/main/java/derms/replica2/Replica2.java @@ -57,7 +57,7 @@ public class Replica2 implements Replica { public boolean isAlive() { return alive; } @Override - public void startProcess() { + public void startProcess(int byzantine, int crash) { try { pool.execute(new ResourceAvailability.Server(localAddr, resources)); } catch (IOException e) { @@ -153,7 +153,7 @@ public class Replica2 implements Replica { @Override public void restart() { shutdown(); - startProcess(); + startProcess(0, 0); } @Override diff --git a/src/main/java/derms/replica3/Replica3.java b/src/main/java/derms/replica3/Replica3.java index 8863c9e..ca01fdf 100644 --- a/src/main/java/derms/replica3/Replica3.java +++ b/src/main/java/derms/replica3/Replica3.java @@ -52,7 +52,7 @@ public class Replica3 implements Replica{ public boolean isAlive() { return alive; } @Override - public void startProcess() { + public void startProcess(int byzantine, int crash) { // TODO // log.info(getClass().getSimpleName() + " started."); System.out.println("process started"); @@ -104,7 +104,7 @@ public class Replica3 implements Replica{ public void restart() { // TODO shutdown(); - startProcess(); + startProcess(0, 0); } @Override |