summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorBMatajsz <90217645+BMatajsz@users.noreply.github.com>2024-12-02 23:50:26 -0500
committerBMatajsz <90217645+BMatajsz@users.noreply.github.com>2024-12-02 23:50:26 -0500
commitc577b64ba33fca4fb5d879dc94a491b5003b0ae9 (patch)
treeac31afa87fa9c76b424a3f40fef86f7df8ef6a01 /src
parentbc85d454e6c28638fc075ff37824a87445a8d49f (diff)
downloadsoen423-c577b64ba33fca4fb5d879dc94a491b5003b0ae9.zip
Progress
Diffstat (limited to 'src')
-rw-r--r--src/main/java/derms/Replica.java2
-rw-r--r--src/main/java/derms/ReplicaManager.java14
-rw-r--r--src/main/java/derms/replica1/Replica1.java4
-rw-r--r--src/main/java/derms/replica2/Replica2.java4
-rw-r--r--src/main/java/derms/replica3/Replica3.java4
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