mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-02 18:33:54 +00:00
append more message without buffering
This commit is contained in:
1 parent
4830daa0c5
commit
5cd72477e4
2 files changed
+11
-3
No files matched your search
+8
-3
@@ -31,9 +31,10 @@ public class OverlappingStoredAndReceivedMessagesTest implements RaceSpecificMes
|
||||
|
||||
private static final int PORT = 6543;
|
||||
|
||||
final private int COUNT = 10;
|
||||
final private int COUNT = 15;
|
||||
final private int STORED = 5;
|
||||
final private int OVERLAP = 2;
|
||||
final private int UNBUFFERED = 5;
|
||||
|
||||
private ArrayList<SailMasterMessage> messagesToLoad;
|
||||
private boolean loadMessagesCalled;
|
||||
@@ -104,7 +105,7 @@ public class OverlappingStoredAndReceivedMessagesTest implements RaceSpecificMes
|
||||
}
|
||||
}
|
||||
});
|
||||
assert STORED < COUNT && STORED-OVERLAP >= 0;
|
||||
assert STORED < COUNT-UNBUFFERED && STORED-OVERLAP >= 0;
|
||||
final String[] rawMessage = new String[COUNT];
|
||||
for (int i=0; i<COUNT; i++) {
|
||||
rawMessage[i] = "CCG|4711|2|1;Lee Gate;LG1;LG2|"+i+";Windward;WW1";
|
||||
@@ -126,7 +127,7 @@ public class OverlappingStoredAndReceivedMessagesTest implements RaceSpecificMes
|
||||
}
|
||||
// now transmit all messages; buffering will continue until loadMessages is
|
||||
// unblocked by us sending the STORED-OVERLAPth message
|
||||
for (int i = 0; i < COUNT; i++) {
|
||||
for (int i = 0; i < COUNT-UNBUFFERED; i++) {
|
||||
if (i >= STORED-OVERLAP) {
|
||||
transceiver.sendMessage(swissTimingFactory.createMessage(rawMessage[i], (long) i), sendingStream);
|
||||
}
|
||||
@@ -143,6 +144,10 @@ public class OverlappingStoredAndReceivedMessagesTest implements RaceSpecificMes
|
||||
bufferingMessageSenderThread.start();
|
||||
connector.trackRace("4711"); // this should transitively invoke loadMessages which blocks until the first STORED messages have been sent
|
||||
assertTrue(loadMessagesCalled);
|
||||
// send more messages after buffering
|
||||
for (int i=COUNT-UNBUFFERED; i<COUNT; i++) {
|
||||
transceiver.sendMessage(swissTimingFactory.createMessage(rawMessage[i], (long) i), sendingStream);
|
||||
}
|
||||
synchronized (this) {
|
||||
int attempts = 0;
|
||||
while (coursesReceived.size() < COUNT && attempts++ < 2 * COUNT) {
|
||||
|
||||
+3
@@ -176,6 +176,7 @@ public class SailMasterConnectorImpl extends SailMasterTransceiverImpl implement
|
||||
if (bufferedMessage.getSequenceNumber() != null && bufferedMessage.getSequenceNumber() > maxSequenceNumber) {
|
||||
maxSequenceNumber = bufferedMessage.getSequenceNumber();
|
||||
} else {
|
||||
logger.info("discarding already loaded buffered message " + bufferedMessage);
|
||||
bufferedMessage = null;
|
||||
}
|
||||
} else {
|
||||
@@ -229,6 +230,8 @@ public class SailMasterConnectorImpl extends SailMasterTransceiverImpl implement
|
||||
// a spontaneous event
|
||||
logger.info("notifying message " + message);
|
||||
notifyListeners(message);
|
||||
} else {
|
||||
logger.info("discarding already notified message " + message);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user