From 4b3cc8e126dc12b188ca7af8600a0ca02d4484fe Mon Sep 17 00:00:00 2001 From: Connor Taylor-Brown Date: Thu, 17 Aug 2017 11:47:54 +1200 Subject: [PATCH] Created ack number generator for use by multiple services #story[1100] --- .../java/mock/app/ConnectionAcceptor.java | 19 ++--------------- .../src/main/java/mock/model/RaceServer.java | 1 - .../src/main/java/network/AckSequencer.java | 21 +++++++++++++++++++ 3 files changed, 23 insertions(+), 18 deletions(-) create mode 100644 racevisionGame/src/main/java/network/AckSequencer.java diff --git a/racevisionGame/src/main/java/mock/app/ConnectionAcceptor.java b/racevisionGame/src/main/java/mock/app/ConnectionAcceptor.java index d399210d..da5c50f8 100644 --- a/racevisionGame/src/main/java/mock/app/ConnectionAcceptor.java +++ b/racevisionGame/src/main/java/mock/app/ConnectionAcceptor.java @@ -4,6 +4,7 @@ import mock.model.RaceLogic; import mock.model.ClientConnection; import mock.model.SourceIdAllocator; import mock.model.commandFactory.CompositeCommand; +import network.AckSequencer; import network.Messages.Enums.XMLMessageType; import network.Messages.LatestMessages; import network.Messages.XMLMessage; @@ -58,11 +59,6 @@ public class ConnectionAcceptor implements Runnable { */ private SourceIdAllocator sourceIdAllocator; - - - - //Acknowledgement number for packets - private int ackNumber = 0; //race xml sequence number private short raceXMLSequenceNumber; //boat xml sequence number @@ -263,7 +259,7 @@ public class ConnectionAcceptor implements Runnable { //Create the message. XMLMessage message = new XMLMessage( XMLMessage.currentVersionNumber, - getNextAckNumber(), + AckSequencer.getNextAckNum(), System.currentTimeMillis(), messageType, sequenceNumber, @@ -272,15 +268,4 @@ public class ConnectionAcceptor implements Runnable { return message; } - - /** - * Increments the ackNumber value, and returns it. - * @return Incremented ackNumber. - */ - private int getNextAckNumber(){ - this.ackNumber++; - - return this.ackNumber; - } - } diff --git a/racevisionGame/src/main/java/mock/model/RaceServer.java b/racevisionGame/src/main/java/mock/model/RaceServer.java index af343666..cbbe1971 100644 --- a/racevisionGame/src/main/java/mock/model/RaceServer.java +++ b/racevisionGame/src/main/java/mock/model/RaceServer.java @@ -28,7 +28,6 @@ public class RaceServer { this.latestMessages = latestMessages; } - /** * Parses the race to create a snapshot, and places it in latestMessages. */ diff --git a/racevisionGame/src/main/java/network/AckSequencer.java b/racevisionGame/src/main/java/network/AckSequencer.java new file mode 100644 index 00000000..bed59664 --- /dev/null +++ b/racevisionGame/src/main/java/network/AckSequencer.java @@ -0,0 +1,21 @@ +package network; + +import java.util.concurrent.atomic.AtomicInteger; + +/** + * Common source of ack numbers for all messages + */ +public class AckSequencer { + /** + * Generator for ack numbers + */ + private static AtomicInteger ackNum = new AtomicInteger(0); + + /** + * Retrieve next ack number + * @return next ack number + */ + public static int getNextAckNum() { + return ackNum.getAndIncrement(); + } +}