summaryrefslogtreecommitdiff
path: root/sources/protocols/VSProtocol.java
diff options
context:
space:
mode:
Diffstat (limited to 'sources/protocols/VSProtocol.java')
-rw-r--r--sources/protocols/VSProtocol.java23
1 files changed, 12 insertions, 11 deletions
diff --git a/sources/protocols/VSProtocol.java b/sources/protocols/VSProtocol.java
index b66f034..4f34195 100644
--- a/sources/protocols/VSProtocol.java
+++ b/sources/protocols/VSProtocol.java
@@ -11,9 +11,12 @@ abstract public class VSProtocol extends VSPrefs implements VSEvent {
private boolean isClient;
protected VSProcess process;
private boolean currentContextIsServer;
- private boolean lamportIncreased;
- public VSProtocol() {
+ public void init(VSProcess process) {
+ this.process = process;
+ this.prefs = process.getPrefs();
+
+ onInit();
}
protected final void setProtocolClassname(String protocolClassname) {
@@ -36,7 +39,8 @@ abstract public class VSProtocol extends VSPrefs implements VSEvent {
}
protected void sendMessage(VSMessage message) {
- process.setLamportTime(process.getLamportTime()+1);
+ process.increaseLamportTime();
+ process.increaseVectorTime();
message.setSendingProcess(process);
process.sendMessage(message);
}
@@ -75,14 +79,6 @@ abstract public class VSProtocol extends VSPrefs implements VSEvent {
this.isClient = isClient;
}
- public final void setVSPrefs(VSPrefs prefs) {
- this.prefs = prefs;
- }
-
- public final void setProcess(VSProcess process) {
- this.process = process;
- }
-
public void reset() {
if (isServer) {
currentContextIsServer = true;
@@ -95,6 +91,7 @@ abstract public class VSProtocol extends VSPrefs implements VSEvent {
}
}
+ abstract protected void onInit();
abstract protected void onClientStart();
abstract protected void onClientReset();
abstract protected void onClientRecv(VSMessage message);
@@ -110,6 +107,10 @@ abstract public class VSProtocol extends VSPrefs implements VSEvent {
return protocol.getID() == getID();
}
+ protected int getNumProcesses() {
+ return process.getSimulationPanel().getNumProcesses();
+ }
+
public String toString() {
String type = new String();