diff options
Diffstat (limited to 'sources/protocols/implementations/BroadcastSturmProtocol.java')
| -rw-r--r-- | sources/protocols/implementations/BroadcastSturmProtocol.java | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/sources/protocols/implementations/BroadcastSturmProtocol.java b/sources/protocols/implementations/BroadcastSturmProtocol.java new file mode 100644 index 0000000..c68b548 --- /dev/null +++ b/sources/protocols/implementations/BroadcastSturmProtocol.java @@ -0,0 +1,48 @@ +package protocols.implementations; + +import java.util.ArrayList; + +import core.VSMessage; +import prefs.VSPrefs; +import protocols.VSProtocol; + +public class BroadcastSturmProtocol extends VSProtocol { + private ArrayList<VSMessage> sentMessages; + private static int broadcastCount; + + protected void onInit() { + setProtocolClassname(getClass().toString()); + sentMessages = new ArrayList<VSMessage>(); + } + + protected void onClientReset() { + } + + protected void onClientStart() { + VSMessage message = new VSMessage(getProtocolClassname()); + message.setInteger("Broadcast", broadcastCount++); + sentMessages.add(message); + sendMessage(message); + } + + protected void onClientRecv(VSMessage recvMessage) { + } + + protected void onServerReset() { + sentMessages.clear(); + } + + protected void onServerRecv(VSMessage recvMessage) { + if (!sentMessages.contains(recvMessage)) { + VSMessage message = new VSMessage(getProtocolClassname()); + message.setInteger("Broadcast", recvMessage.getInteger("Broadcast")); + + sentMessages.add(message); + sendMessage(message); + } + } + + public String toString() { + return super.toString(); + } +} |
