diff options
| author | Paul Buetow <paul@buetow.org> | 2008-05-25 08:10:13 +0000 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2008-05-25 08:10:13 +0000 |
| commit | c015d586d22b69078b6da61858e5675793856b0b (patch) | |
| tree | efbc9881cf59363abef52a0beb5eedf9e81a224a /sources/protocols | |
| parent | 62fe28f0b0b0c9ebde18a6dc33907889ff3aa21b (diff) | |
JAutoDoc :)
Diffstat (limited to 'sources/protocols')
7 files changed, 295 insertions, 2 deletions
diff --git a/sources/protocols/VSProtocol.java b/sources/protocols/VSProtocol.java index 3b25d04..b3ebfe6 100644 --- a/sources/protocols/VSProtocol.java +++ b/sources/protocols/VSProtocol.java @@ -1,13 +1,32 @@ +/* + * VS is (c) 2008 by Paul C. Buetow + * vs@dev.buetow.org + */ package protocols; import events.*; import core.*; +// TODO: Auto-generated Javadoc +/** + * The Class VSProtocol. + */ abstract public class VSProtocol extends VSEvent { + + /** The is server. */ private boolean isServer; + + /** The is client. */ private boolean isClient; + + /** The current context is server. */ private boolean currentContextIsServer; + /** + * Send message. + * + * @param message the message + */ protected void sendMessage(VSMessage message) { if (process == null) return; @@ -18,10 +37,20 @@ abstract public class VSProtocol extends VSEvent { process.sendMessage(message); } + /** + * Checks if is incorrect protocol. + * + * @param message the message + * + * @return true, if is incorrect protocol + */ private final boolean isIncorrectProtocol(VSMessage message) { return !message.getProtocolClassname().equals(getClassname()); } + /* (non-Javadoc) + * @see events.VSEvent#onStart() + */ public final void onStart() { if (isClient) { onClientStart(); @@ -29,6 +58,11 @@ abstract public class VSProtocol extends VSEvent { } } + /** + * On message recv. + * + * @param message the message + */ public final void onMessageRecv(VSMessage message) { if (isIncorrectProtocol(message)) return; @@ -44,14 +78,27 @@ abstract public class VSProtocol extends VSEvent { } } + /** + * Checks if is server. + * + * @param isServer the is server + */ public final void isServer(boolean isServer) { this.isServer = isServer; } + /** + * Checks if is client. + * + * @param isClient the is client + */ public final void isClient(boolean isClient) { this.isClient = isClient; } + /** + * Reset. + */ public void reset() { if (isServer) { currentContextIsServer = true; @@ -66,12 +113,40 @@ abstract public class VSProtocol extends VSEvent { } } + /** + * On client start. + */ abstract protected void onClientStart(); + + /** + * On client reset. + */ abstract protected void onClientReset(); + + /** + * On client recv. + * + * @param message the message + */ abstract protected void onClientRecv(VSMessage message); + + /** + * On server reset. + */ abstract protected void onServerReset(); + + /** + * On server recv. + * + * @param message the message + */ abstract protected void onServerRecv(VSMessage message); + /** + * Gets the num processes. + * + * @return the num processes + */ protected int getNumProcesses() { if (process == null) return 0; @@ -79,6 +154,9 @@ abstract public class VSProtocol extends VSEvent { return process.getSimulationCanvas().getNumProcesses(); } + /* (non-Javadoc) + * @see prefs.VSPrefs#toString() + */ public String toString() { if (process == null) return ""; diff --git a/sources/protocols/implementations/BerkelyTimeProtocol.java b/sources/protocols/implementations/BerkelyTimeProtocol.java index 20acc22..7326ac5 100644 --- a/sources/protocols/implementations/BerkelyTimeProtocol.java +++ b/sources/protocols/implementations/BerkelyTimeProtocol.java @@ -1,3 +1,7 @@ +/* + * VS is (c) 2008 by Paul C. Buetow + * vs@dev.buetow.org + */ package protocols.implementations; import protocols.VSProtocol; @@ -5,18 +9,29 @@ import core.VSMessage; import java.util.HashMap; +// TODO: Auto-generated Javadoc +/** + * The Class BerkelyTimeProtocol. + */ public class BerkelyTimeProtocol extends VSProtocol { /* Berkely Server variables */ /* Integer: Process ID, Long: Local time of the process */ + /** The process times. */ private HashMap<Integer,Long> processTimes = new HashMap<Integer,Long>(); /* Integer: Process ID, Long: Time of receiving the response from the process */ + /** The recv times. */ private HashMap<Integer,Long> recvTimes = new HashMap<Integer,Long>(); /* Integer: Process ID, Long: Calculated process times (using the RTT) */ + /** The real times rtt. */ private HashMap<Integer,Long> realTimesRTT = new HashMap<Integer,Long>(); /* Time the request/response has started */ + /** The request time. */ private long requestTime; + /** + * Instantiates a new berkely time protocol. + */ public BerkelyTimeProtocol() { setClassname(getClass().toString()); @@ -24,15 +39,24 @@ public class BerkelyTimeProtocol extends VSProtocol { setInteger("numProcesses", 0); } + /* (non-Javadoc) + * @see events.VSEvent#onInit() + */ protected void onInit() { } + /* (non-Javadoc) + * @see protocols.VSProtocol#onClientReset() + */ protected void onClientReset() { processTimes.clear(); recvTimes.clear(); realTimesRTT.clear(); } + /* (non-Javadoc) + * @see protocols.VSProtocol#onClientStart() + */ protected void onClientStart() { requestTime = process.getTime(); VSMessage message = new VSMessage(getClassname()); @@ -40,6 +64,9 @@ public class BerkelyTimeProtocol extends VSProtocol { sendMessage(message); } + /* (non-Javadoc) + * @see protocols.VSProtocol#onClientRecv(core.VSMessage) + */ protected void onClientRecv(VSMessage recvMessage) { /* Ignore all protocol messages which are not a response message, e.g. itself */ if (!recvMessage.getBoolean("isResponse")) @@ -64,7 +91,9 @@ public class BerkelyTimeProtocol extends VSProtocol { } /** - * Calculate the new average time + * Calculate the new average time. + * + * @return the long */ private long calculateAverageTime() { long sum = 0; @@ -82,7 +111,9 @@ public class BerkelyTimeProtocol extends VSProtocol { } /** - * Sends to all clients a value to justify their local clocks + * Sends to all clients a value to justify their local clocks. + * + * @param avgTime the avg time */ private void sendJustifyRequests(long avgTime) { for (Integer processID : processTimes.keySet()) { @@ -96,9 +127,15 @@ public class BerkelyTimeProtocol extends VSProtocol { } } + /* (non-Javadoc) + * @see protocols.VSProtocol#onServerReset() + */ protected void onServerReset() { } + /* (non-Javadoc) + * @see protocols.VSProtocol#onServerRecv(core.VSMessage) + */ protected void onServerRecv(VSMessage recvMessage) { if (recvMessage.getBoolean("isRequest")) { VSMessage message = new VSMessage(getClassname()); @@ -121,6 +158,9 @@ public class BerkelyTimeProtocol extends VSProtocol { } } + /* (non-Javadoc) + * @see protocols.VSProtocol#toString() + */ public String toString() { return super.toString(); } diff --git a/sources/protocols/implementations/BroadcastSturmProtocol.java b/sources/protocols/implementations/BroadcastSturmProtocol.java index 165a2f3..9efd347 100644 --- a/sources/protocols/implementations/BroadcastSturmProtocol.java +++ b/sources/protocols/implementations/BroadcastSturmProtocol.java @@ -1,3 +1,7 @@ +/* + * VS is (c) 2008 by Paul C. Buetow + * vs@dev.buetow.org + */ package protocols.implementations; import java.util.ArrayList; @@ -5,21 +9,41 @@ import java.util.ArrayList; import core.VSMessage; import protocols.VSProtocol; +// TODO: Auto-generated Javadoc +/** + * The Class BroadcastSturmProtocol. + */ public class BroadcastSturmProtocol extends VSProtocol { + + /** The sent messages. */ private ArrayList<VSMessage> sentMessages; + + /** The broadcast count. */ private static int broadcastCount; + /** + * Instantiates a new broadcast sturm protocol. + */ public BroadcastSturmProtocol() { setClassname(getClass().toString()); sentMessages = new ArrayList<VSMessage>(); } + /* (non-Javadoc) + * @see events.VSEvent#onInit() + */ protected void onInit() { } + /* (non-Javadoc) + * @see protocols.VSProtocol#onClientReset() + */ protected void onClientReset() { } + /* (non-Javadoc) + * @see protocols.VSProtocol#onClientStart() + */ protected void onClientStart() { VSMessage message = new VSMessage(getClassname()); message.setInteger("Broadcast", broadcastCount++); @@ -27,13 +51,22 @@ public class BroadcastSturmProtocol extends VSProtocol { sendMessage(message); } + /* (non-Javadoc) + * @see protocols.VSProtocol#onClientRecv(core.VSMessage) + */ protected void onClientRecv(VSMessage recvMessage) { } + /* (non-Javadoc) + * @see protocols.VSProtocol#onServerReset() + */ protected void onServerReset() { sentMessages.clear(); } + /* (non-Javadoc) + * @see protocols.VSProtocol#onServerRecv(core.VSMessage) + */ protected void onServerRecv(VSMessage recvMessage) { if (!sentMessages.contains(recvMessage)) { VSMessage message = new VSMessage(getClassname()); @@ -44,6 +77,9 @@ public class BroadcastSturmProtocol extends VSProtocol { } } + /* (non-Javadoc) + * @see protocols.VSProtocol#toString() + */ public String toString() { return super.toString(); } diff --git a/sources/protocols/implementations/DummyProtocol.java b/sources/protocols/implementations/DummyProtocol.java index a7beb19..50690b3 100644 --- a/sources/protocols/implementations/DummyProtocol.java +++ b/sources/protocols/implementations/DummyProtocol.java @@ -1,20 +1,41 @@ +/* + * VS is (c) 2008 by Paul C. Buetow + * vs@dev.buetow.org + */ package protocols.implementations; import protocols.VSProtocol; import core.VSMessage; +// TODO: Auto-generated Javadoc +/** + * The Class DummyProtocol. + */ public class DummyProtocol extends VSProtocol { + + /** + * Instantiates a new dummy protocol. + */ public DummyProtocol() { setClassname(getClass().toString()); } + /* (non-Javadoc) + * @see events.VSEvent#onInit() + */ protected void onInit() { } + /* (non-Javadoc) + * @see protocols.VSProtocol#onClientReset() + */ protected void onClientReset() { logg("onClientReset()"); } + /* (non-Javadoc) + * @see protocols.VSProtocol#onClientStart() + */ protected void onClientStart() { logg("onClientStart()"); @@ -26,6 +47,9 @@ public class DummyProtocol extends VSProtocol { sendMessage(message); } + /* (non-Javadoc) + * @see protocols.VSProtocol#onClientRecv(core.VSMessage) + */ protected void onClientRecv(VSMessage recvMessage) { logg("onClientRecv("+recvMessage+")"); @@ -35,14 +59,23 @@ public class DummyProtocol extends VSProtocol { float f = recvMessage.getFloat("A float"); } + /* (non-Javadoc) + * @see protocols.VSProtocol#onServerReset() + */ protected void onServerReset() { logg("onClientReset()"); } + /* (non-Javadoc) + * @see protocols.VSProtocol#onServerRecv(core.VSMessage) + */ protected void onServerRecv(VSMessage recvMessage) { logg("onServerRecv("+recvMessage+")"); } + /* (non-Javadoc) + * @see protocols.VSProtocol#toString() + */ public String toString() { return super.toString() + "; Dummy Test"; } diff --git a/sources/protocols/implementations/ExternalTimeSyncProtocol.java b/sources/protocols/implementations/ExternalTimeSyncProtocol.java index 5a55d89..63edcaf 100644 --- a/sources/protocols/implementations/ExternalTimeSyncProtocol.java +++ b/sources/protocols/implementations/ExternalTimeSyncProtocol.java @@ -1,22 +1,46 @@ +/* + * VS is (c) 2008 by Paul C. Buetow + * vs@dev.buetow.org + */ package protocols.implementations; import core.VSMessage; import protocols.VSProtocol; +// TODO: Auto-generated Javadoc +/** + * The Class ExternalTimeSyncProtocol. + */ public class ExternalTimeSyncProtocol extends VSProtocol { + + /** The request time. */ private long requestTime; + + /** The waiting for response. */ private boolean waitingForResponse; + /** + * Instantiates a new external time sync protocol. + */ public ExternalTimeSyncProtocol() { setClassname(getClass().toString()); } + /* (non-Javadoc) + * @see events.VSEvent#onInit() + */ protected void onInit() { } + /* (non-Javadoc) + * @see protocols.VSProtocol#onClientReset() + */ protected void onClientReset() { } + /* (non-Javadoc) + * @see protocols.VSProtocol#onClientStart() + */ protected void onClientStart() { requestTime = process.getTime(); waitingForResponse = true; @@ -27,6 +51,9 @@ public class ExternalTimeSyncProtocol extends VSProtocol { sendMessage(message); } + /* (non-Javadoc) + * @see protocols.VSProtocol#onClientRecv(core.VSMessage) + */ protected void onClientRecv(VSMessage recvMessage) { if (!recvMessage.getBoolean("isServerResponse")) return; @@ -45,9 +72,15 @@ public class ExternalTimeSyncProtocol extends VSProtocol { process.setTime(newTime); } + /* (non-Javadoc) + * @see protocols.VSProtocol#onServerReset() + */ protected void onServerReset() { } + /* (non-Javadoc) + * @see protocols.VSProtocol#onServerRecv(core.VSMessage) + */ protected void onServerRecv(VSMessage recvMessage) { if (!recvMessage.getBoolean("isClientRequest")) return; @@ -59,6 +92,9 @@ public class ExternalTimeSyncProtocol extends VSProtocol { sendMessage(message); } + /* (non-Javadoc) + * @see protocols.VSProtocol#toString() + */ public String toString() { return super.toString(); //+ "; " + prefs.getString("lang.requesttime") + ": " + requestTime; } diff --git a/sources/protocols/implementations/InternalTimeSyncProtocol.java b/sources/protocols/implementations/InternalTimeSyncProtocol.java index ff9c4e3..2f9a84c 100644 --- a/sources/protocols/implementations/InternalTimeSyncProtocol.java +++ b/sources/protocols/implementations/InternalTimeSyncProtocol.java @@ -1,11 +1,24 @@ +/* + * VS is (c) 2008 by Paul C. Buetow + * vs@dev.buetow.org + */ package protocols.implementations; import core.VSMessage; import protocols.VSProtocol; +// TODO: Auto-generated Javadoc +/** + * The Class InternalTimeSyncProtocol. + */ public class InternalTimeSyncProtocol extends VSProtocol { + + /** The waiting for response. */ private boolean waitingForResponse; + /** + * Instantiates a new internal time sync protocol. + */ public InternalTimeSyncProtocol() { setClassname(getClass().toString()); @@ -14,12 +27,21 @@ public class InternalTimeSyncProtocol extends VSProtocol { setLong("t_max", 2000); } + /* (non-Javadoc) + * @see events.VSEvent#onInit() + */ protected void onInit() { } + /* (non-Javadoc) + * @see protocols.VSProtocol#onClientReset() + */ protected void onClientReset() { } + /* (non-Javadoc) + * @see protocols.VSProtocol#onClientStart() + */ protected void onClientStart() { waitingForResponse = true; @@ -29,6 +51,9 @@ public class InternalTimeSyncProtocol extends VSProtocol { sendMessage(message); } + /* (non-Javadoc) + * @see protocols.VSProtocol#onClientRecv(core.VSMessage) + */ protected void onClientRecv(VSMessage recvMessage) { /* Ignore all protocol messages which are not a response message, e.g. itself */ if (!recvMessage.getBoolean("isServerResponse")) @@ -51,9 +76,15 @@ public class InternalTimeSyncProtocol extends VSProtocol { process.setTime(newTime); } + /* (non-Javadoc) + * @see protocols.VSProtocol#onServerReset() + */ protected void onServerReset() { } + /* (non-Javadoc) + * @see protocols.VSProtocol#onServerRecv(core.VSMessage) + */ protected void onServerRecv(VSMessage recvMessage) { /* Ignore all protocol messages which are not a request message, e.g. itself */ if (!recvMessage.getBoolean("isClientRequest")) @@ -66,6 +97,9 @@ public class InternalTimeSyncProtocol extends VSProtocol { sendMessage(message); } + /* (non-Javadoc) + * @see protocols.VSProtocol#toString() + */ public String toString() { return super.toString(); } diff --git a/sources/protocols/implementations/PingPongProtocol.java b/sources/protocols/implementations/PingPongProtocol.java index a2886f9..5df152f 100644 --- a/sources/protocols/implementations/PingPongProtocol.java +++ b/sources/protocols/implementations/PingPongProtocol.java @@ -1,23 +1,47 @@ +/* + * VS is (c) 2008 by Paul C. Buetow + * vs@dev.buetow.org + */ package protocols.implementations; import core.VSMessage; import protocols.VSProtocol; +// TODO: Auto-generated Javadoc +/** + * The Class PingPongProtocol. + */ public class PingPongProtocol extends VSProtocol { + + /** The client counter. */ private int clientCounter; + + /** The server counter. */ private int serverCounter; + /** + * Instantiates a new ping pong protocol. + */ public PingPongProtocol() { setClassname(getClass().toString()); } + /* (non-Javadoc) + * @see events.VSEvent#onInit() + */ protected void onInit() { } + /* (non-Javadoc) + * @see protocols.VSProtocol#onClientReset() + */ protected void onClientReset() { clientCounter = 0; } + /* (non-Javadoc) + * @see protocols.VSProtocol#onClientStart() + */ protected void onClientStart() { VSMessage message = new VSMessage(getClassname()); message.setBoolean("fromClient", true); @@ -25,6 +49,9 @@ public class PingPongProtocol extends VSProtocol { sendMessage(message); } + /* (non-Javadoc) + * @see protocols.VSProtocol#onClientRecv(core.VSMessage) + */ protected void onClientRecv(VSMessage recvMessage) { if (!recvMessage.getBoolean("fromServer")) return; @@ -37,10 +64,16 @@ public class PingPongProtocol extends VSProtocol { sendMessage(message); } + /* (non-Javadoc) + * @see protocols.VSProtocol#onServerReset() + */ protected void onServerReset() { serverCounter = 0; } + /* (non-Javadoc) + * @see protocols.VSProtocol#onServerRecv(core.VSMessage) + */ protected void onServerRecv(VSMessage recvMessage) { if (!recvMessage.getBoolean("fromClient")) return; @@ -53,6 +86,9 @@ public class PingPongProtocol extends VSProtocol { sendMessage(message); } + /* (non-Javadoc) + * @see protocols.VSProtocol#toString() + */ public String toString() { return super.toString(); } |
