summaryrefslogtreecommitdiff
path: root/sources/protocols/PingPongProtocol.java
diff options
context:
space:
mode:
Diffstat (limited to 'sources/protocols/PingPongProtocol.java')
-rw-r--r--sources/protocols/PingPongProtocol.java57
1 files changed, 57 insertions, 0 deletions
diff --git a/sources/protocols/PingPongProtocol.java b/sources/protocols/PingPongProtocol.java
new file mode 100644
index 0000000..6244b9a
--- /dev/null
+++ b/sources/protocols/PingPongProtocol.java
@@ -0,0 +1,57 @@
+package protocols;
+
+import prefs.VSPrefs;
+import core.VSMessage;
+
+public class PingPongProtocol extends VSProtocol {
+ private int clientCounter;
+ private int serverCounter;
+
+ public PingPongProtocol() {
+ setProtocolClassname(getClass().toString());
+ }
+
+ protected void onClientReset() {
+ clientCounter = 0;
+ }
+
+ protected void onClientStart() {
+
+ VSMessage message = new VSMessage(getProtocolClassname());
+ message.setBoolean("fromClient", true);
+ message.setInteger("counter", ++clientCounter);
+ sendMessage(message);
+ }
+
+ protected void onClientRecv(VSMessage recvMessage) {
+ if (!recvMessage.getBoolean("fromServer"))
+ return;
+
+ logg("message: " + recvMessage.getInteger("counter"));
+
+ VSMessage message = new VSMessage(getProtocolClassname());
+ message.setBoolean("fromClient", true);
+ message.setInteger("counter", ++clientCounter);
+ sendMessage(message);
+ }
+
+ protected void onServerReset() {
+ serverCounter = 0;
+ }
+
+ protected void onServerRecv(VSMessage recvMessage) {
+ if (!recvMessage.getBoolean("fromClient"))
+ return;
+
+ logg("message: " + recvMessage.getInteger("counter"));
+
+ VSMessage message = new VSMessage(getProtocolClassname());
+ message.setBoolean("fromServer", true);
+ message.setInteger("counter", ++serverCounter);
+ sendMessage(message);
+ }
+
+ public String toString() {
+ return super.toString();
+ }
+}