diff options
| author | Paul Buetow <paul@buetow.org> | 2008-05-18 19:29:30 +0000 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2008-05-18 19:29:30 +0000 |
| commit | 2d45de18df35f6d3ba4ca0b86ec1188e49637413 (patch) | |
| tree | 6c84c8cd14a89a6dabeada811c6477d1e5459767 /sources/protocols | |
| parent | c46ed2242876bfb267ed0b6823c8a3e99ac62dd6 (diff) | |
The TaskManager works partly.
Diffstat (limited to 'sources/protocols')
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); |
