summaryrefslogtreecommitdiff
path: root/sources/protocols
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2008-05-18 19:29:30 +0000
committerPaul Buetow <paul@buetow.org>2008-05-18 19:29:30 +0000
commit2d45de18df35f6d3ba4ca0b86ec1188e49637413 (patch)
tree6c84c8cd14a89a6dabeada811c6477d1e5459767 /sources/protocols
parentc46ed2242876bfb267ed0b6823c8a3e99ac62dd6 (diff)
The TaskManager works partly.
Diffstat (limited to 'sources/protocols')
-rw-r--r--sources/protocols/VSProtocol.java46
-rw-r--r--sources/protocols/VSRegisteredProtocols.java86
-rw-r--r--sources/protocols/implementations/BerkelyTimeProtocol.java8
-rw-r--r--sources/protocols/implementations/BroadcastSturmProtocol.java6
-rw-r--r--sources/protocols/implementations/DummyProtocol.java4
-rw-r--r--sources/protocols/implementations/ExternalTimeSyncProtocol.java6
-rw-r--r--sources/protocols/implementations/InternalTimeSyncProtocol.java6
-rw-r--r--sources/protocols/implementations/PingPongProtocol.java8
8 files changed, 24 insertions, 146 deletions
diff --git a/sources/protocols/VSProtocol.java b/sources/protocols/VSProtocol.java
index a7c5823..ceca348 100644
--- a/sources/protocols/VSProtocol.java
+++ b/sources/protocols/VSProtocol.java
@@ -1,47 +1,19 @@
package protocols;
import prefs.VSPrefs;
-import events.VSEvent;
+import events.*;
import core.*;
-abstract public class VSProtocol extends VSPrefs implements VSEvent {
- protected VSPrefs prefs;
- private String protocolClassname;
+abstract public class VSProtocol extends VSEvent {
private boolean isServer;
private boolean isClient;
- protected VSProcess process;
private boolean currentContextIsServer;
public void init(VSProcess process) {
- this.process = process;
- this.prefs = process.getPrefs();
-
+ super.init(process);
onInit();
}
- protected final void setProtocolClassname(String protocolClassname) {
- if (protocolClassname.startsWith("class "))
- protocolClassname = protocolClassname.substring(6);
-
- this.protocolClassname = protocolClassname;
- }
-
- public final String getProtocolClassname() {
- return protocolClassname;
- }
-
- public final String getProtocolName() {
- return VSRegisteredProtocols.getProtocolName(protocolClassname);
- }
-
- public final String getProtocolShortname() {
- return VSRegisteredProtocols.getProtocolShortname(protocolClassname);
- }
-
- public final VSProcess getProcess() {
- return process;
- }
-
protected void sendMessage(VSMessage message) {
process.increaseLamportTime();
process.increaseVectorTime();
@@ -50,7 +22,7 @@ abstract public class VSProtocol extends VSPrefs implements VSEvent {
}
private final boolean isIncorrectProtocol(VSMessage message) {
- return !message.getProtocolClassname().equals(getProtocolClassname());
+ return !message.getClassname().equals(getClassname());
}
public final void onStart() {
@@ -103,14 +75,6 @@ abstract public class VSProtocol extends VSPrefs implements VSEvent {
abstract protected void onServerReset();
abstract protected void onServerRecv(VSMessage message);
- public void logg(String message) {
- process.logg(toString() + "; " + message);
- }
-
- public boolean equals(VSProtocol protocol) {
- return protocol.getID() == getID();
- }
-
protected int getNumProcesses() {
return process.getSimulationPanel().getNumProcesses();
}
@@ -120,7 +84,7 @@ abstract public class VSProtocol extends VSPrefs implements VSEvent {
buffer.append(prefs.getString("lang.protocol"));
buffer.append(": ");
- buffer.append(getProtocolShortname());
+ buffer.append(getShortname());
buffer.append(" ");
if (currentContextIsServer)
diff --git a/sources/protocols/VSRegisteredProtocols.java b/sources/protocols/VSRegisteredProtocols.java
deleted file mode 100644
index d58385b..0000000
--- a/sources/protocols/VSRegisteredProtocols.java
+++ /dev/null
@@ -1,86 +0,0 @@
-package protocols;
-
-import java.util.*;
-
-import prefs.*;
-import core.*;
-import utils.*;
-
-public final class VSRegisteredProtocols {
- private static HashMap<String,String> protocolClassnames;
- private static HashMap<String,String> protocolShortnames;
- private static HashMap<String,String> protocolNames;
- private static VSPrefs prefs;
-
- public static void init(VSPrefs prefs_) {
- prefs = prefs_;
- protocolNames = new HashMap<String, String>();
- protocolShortnames = new HashMap<String, String>();
- protocolClassnames = new HashMap<String, String>();
-
- registerProtocol("protocols.implementations.BerkelyTimeProtocol", "Berkeley Algorithmus zur internen Sync.", "Berkeley");
- registerProtocol("protocols.implementations.BroadcastSturmProtocol", "Broadcaststurm", null);
- registerProtocol("protocols.implementations.DummyProtocol", "Beispiel/Dummy", null);
- registerProtocol("protocols.implementations.ExternalTimeSyncProtocol", "Christians Methode zur externen Sync.", "Christians");
- registerProtocol("protocols.implementations.InternalTimeSyncProtocol", "Interne Synchronisation", "Interne Sync.");
- registerProtocol("protocols.implementations.PingPongProtocol", "Ping Pong", null);
- }
-
- public static Vector<String> getProtocolNames() {
- Set<String> set = protocolClassnames.keySet();
- Vector<String> vector = new Vector<String>();
-
- for (String protocolName : set)
- vector.add(protocolName);
-
- Collections.sort(vector);
-
- return vector;
- }
-
- public static Vector<String> getProtocolClassnames() {
- Set<String> set = protocolNames.keySet();
- Vector<String> vector = new Vector<String>();
-
- for (String protocolClassname : set)
- vector.add(protocolClassname);
-
- Collections.sort(vector);
-
- return vector;
- }
-
- public static String getProtocolClassname(String protocolName) {
- return protocolClassnames.get(protocolName);
- }
-
- public static String getProtocolName(String protocolClassname) {
- return protocolNames.get(protocolClassname);
- }
-
- public static String getProtocolShortname(String protocolClassname) {
- return protocolShortnames.get(protocolClassname);
- }
-
- public static VSProtocol getProtocolInstanceByName(String protocolName, VSProcess process) {
- final String protocolClassname = protocolClassnames.get(protocolName);
- final Object protocolObj = new VSClassLoader().newInstance(protocolClassname);
-
- if (protocolObj instanceof VSProtocol) {
- VSProtocol protocol = (VSProtocol) protocolObj;
- protocol.init(process);
- return protocol;
- }
-
- return null;
- }
-
- private static void registerProtocol(String protocolClassname, String protocolName, String protocolShortname) {
- if (protocolShortname == null)
- protocolShortname = protocolName;
-
- protocolNames.put(protocolClassname, protocolName);
- protocolShortnames.put(protocolClassname, protocolShortname);
- protocolClassnames.put(protocolName, protocolClassname);
- }
-}
diff --git a/sources/protocols/implementations/BerkelyTimeProtocol.java b/sources/protocols/implementations/BerkelyTimeProtocol.java
index 0063de1..c64e175 100644
--- a/sources/protocols/implementations/BerkelyTimeProtocol.java
+++ b/sources/protocols/implementations/BerkelyTimeProtocol.java
@@ -21,7 +21,7 @@ public class BerkelyTimeProtocol extends VSProtocol {
/* Berkely Client vairables */
protected void onInit() {
- setProtocolClassname(getClass().toString());
+ setClassname(getClass().toString());
/* Those prefs are editable through the VSProtocol VSEditor GUI. t_min and t_max in milliseconds */
setInteger("numProcesses", getNumProcesses()-1);
@@ -35,7 +35,7 @@ public class BerkelyTimeProtocol extends VSProtocol {
protected void onClientStart() {
requestTime = process.getTime();
- VSMessage message = new VSMessage(getProtocolClassname());
+ VSMessage message = new VSMessage(getClassname());
message.setBoolean("isRequest", true);
sendMessage(message);
}
@@ -88,7 +88,7 @@ public class BerkelyTimeProtocol extends VSProtocol {
for (Integer processID : processTimes.keySet()) {
long realProcessTime = realTimesRTT.get(processID).longValue();
long diff = avgTime - realProcessTime;
- VSMessage message = new VSMessage(getProtocolClassname());
+ VSMessage message = new VSMessage(getClassname());
message.setBoolean("isJustify", true);
message.setLong("timeDiff", diff);
message.setInteger("receiverProcessID", processID);
@@ -101,7 +101,7 @@ public class BerkelyTimeProtocol extends VSProtocol {
protected void onServerRecv(VSMessage recvMessage) {
if (recvMessage.getBoolean("isRequest")) {
- VSMessage message = new VSMessage(getProtocolClassname());
+ VSMessage message = new VSMessage(getClassname());
message.setInteger("processID", process.getProcessID());
message.setLong("time", process.getTime());
message.setBoolean("isResponse", true);
diff --git a/sources/protocols/implementations/BroadcastSturmProtocol.java b/sources/protocols/implementations/BroadcastSturmProtocol.java
index c68b548..7ef2c31 100644
--- a/sources/protocols/implementations/BroadcastSturmProtocol.java
+++ b/sources/protocols/implementations/BroadcastSturmProtocol.java
@@ -11,7 +11,7 @@ public class BroadcastSturmProtocol extends VSProtocol {
private static int broadcastCount;
protected void onInit() {
- setProtocolClassname(getClass().toString());
+ setClassname(getClass().toString());
sentMessages = new ArrayList<VSMessage>();
}
@@ -19,7 +19,7 @@ public class BroadcastSturmProtocol extends VSProtocol {
}
protected void onClientStart() {
- VSMessage message = new VSMessage(getProtocolClassname());
+ VSMessage message = new VSMessage(getClassname());
message.setInteger("Broadcast", broadcastCount++);
sentMessages.add(message);
sendMessage(message);
@@ -34,7 +34,7 @@ public class BroadcastSturmProtocol extends VSProtocol {
protected void onServerRecv(VSMessage recvMessage) {
if (!sentMessages.contains(recvMessage)) {
- VSMessage message = new VSMessage(getProtocolClassname());
+ VSMessage message = new VSMessage(getClassname());
message.setInteger("Broadcast", recvMessage.getInteger("Broadcast"));
sentMessages.add(message);
diff --git a/sources/protocols/implementations/DummyProtocol.java b/sources/protocols/implementations/DummyProtocol.java
index e79f62d..4e5d2cf 100644
--- a/sources/protocols/implementations/DummyProtocol.java
+++ b/sources/protocols/implementations/DummyProtocol.java
@@ -5,7 +5,7 @@ import core.VSMessage;
public class DummyProtocol extends VSProtocol {
protected void onInit() {
- setProtocolClassname(getClass().toString());
+ setClassname(getClass().toString());
}
protected void onClientReset() {
@@ -15,7 +15,7 @@ public class DummyProtocol extends VSProtocol {
protected void onClientStart() {
logg("onClientStart()");
- VSMessage message = new VSMessage(getProtocolClassname());
+ VSMessage message = new VSMessage(getClassname());
message.setString("Greeting", "Hello World!");
message.setInteger("A number", 1);
message.setBoolean("A boolean", true);
diff --git a/sources/protocols/implementations/ExternalTimeSyncProtocol.java b/sources/protocols/implementations/ExternalTimeSyncProtocol.java
index 3f40eca..49c4b51 100644
--- a/sources/protocols/implementations/ExternalTimeSyncProtocol.java
+++ b/sources/protocols/implementations/ExternalTimeSyncProtocol.java
@@ -9,7 +9,7 @@ public class ExternalTimeSyncProtocol extends VSProtocol {
private boolean waitingForResponse;
protected void onInit() {
- setProtocolClassname(getClass().toString());
+ setClassname(getClass().toString());
}
protected void onClientReset() {
@@ -20,7 +20,7 @@ public class ExternalTimeSyncProtocol extends VSProtocol {
waitingForResponse = true;
/* Multicast message to all processes */
- VSMessage message = new VSMessage(getProtocolClassname());
+ VSMessage message = new VSMessage(getClassname());
message.setBoolean("isClientRequest", true);
sendMessage(message);
}
@@ -51,7 +51,7 @@ public class ExternalTimeSyncProtocol extends VSProtocol {
return;
/* Multicast message to all processes */
- VSMessage message = new VSMessage(getProtocolClassname());
+ VSMessage message = new VSMessage(getClassname());
message.setLong("time", process.getTime());
message.setBoolean("isServerResponse", true);
sendMessage(message);
diff --git a/sources/protocols/implementations/InternalTimeSyncProtocol.java b/sources/protocols/implementations/InternalTimeSyncProtocol.java
index ccef2d3..cbe9fa8 100644
--- a/sources/protocols/implementations/InternalTimeSyncProtocol.java
+++ b/sources/protocols/implementations/InternalTimeSyncProtocol.java
@@ -8,7 +8,7 @@ public class InternalTimeSyncProtocol extends VSProtocol {
private boolean waitingForResponse;
protected void onInit() {
- setProtocolClassname(getClass().toString());
+ setClassname(getClass().toString());
/* Those prefs are editable through the VSProtocol VSEditor GUI. t_min and t_max in milliseconds */
setLong("t_min", 1000);
@@ -22,7 +22,7 @@ public class InternalTimeSyncProtocol extends VSProtocol {
waitingForResponse = true;
/* Multicast message to all processes */
- VSMessage message = new VSMessage(getProtocolClassname());
+ VSMessage message = new VSMessage(getClassname());
message.setBoolean("isClientRequest", true);
sendMessage(message);
}
@@ -58,7 +58,7 @@ public class InternalTimeSyncProtocol extends VSProtocol {
return;
/* Multicast message to all processes */
- VSMessage message = new VSMessage(getProtocolClassname());
+ VSMessage message = new VSMessage(getClassname());
message.setLong("time", process.getTime());
message.setBoolean("isServerResponse", true);
sendMessage(message);
diff --git a/sources/protocols/implementations/PingPongProtocol.java b/sources/protocols/implementations/PingPongProtocol.java
index aa2ce16..47a222d 100644
--- a/sources/protocols/implementations/PingPongProtocol.java
+++ b/sources/protocols/implementations/PingPongProtocol.java
@@ -9,7 +9,7 @@ public class PingPongProtocol extends VSProtocol {
private int serverCounter;
protected void onInit() {
- setProtocolClassname(getClass().toString());
+ setClassname(getClass().toString());
}
protected void onClientReset() {
@@ -17,7 +17,7 @@ public class PingPongProtocol extends VSProtocol {
}
protected void onClientStart() {
- VSMessage message = new VSMessage(getProtocolClassname());
+ VSMessage message = new VSMessage(getClassname());
message.setBoolean("fromClient", true);
message.setInteger("counter", ++clientCounter);
sendMessage(message);
@@ -29,7 +29,7 @@ public class PingPongProtocol extends VSProtocol {
logg("message: " + recvMessage.getInteger("counter"));
- VSMessage message = new VSMessage(getProtocolClassname());
+ VSMessage message = new VSMessage(getClassname());
message.setBoolean("fromClient", true);
message.setInteger("counter", ++clientCounter);
sendMessage(message);
@@ -45,7 +45,7 @@ public class PingPongProtocol extends VSProtocol {
logg("message: " + recvMessage.getInteger("counter"));
- VSMessage message = new VSMessage(getProtocolClassname());
+ VSMessage message = new VSMessage(getClassname());
message.setBoolean("fromServer", true);
message.setInteger("counter", ++serverCounter);
sendMessage(message);