mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-21 11:40:01 +00:00
introduced TrackedRaceStatus as first step towards addressing bug 1175; replication of status updates already supported
This commit is contained in:
1 parent
b2e3db25a8
commit
4a580983d5
29 files changed
+341
-62
No files matched your search
+7
@@ -126,5 +126,12 @@ public interface SwissTimingReplayListener {
|
||||
void rankingMark(short marksRank, short marksRankIndex, int marksGap_seconds, int marksRaceTime_seconds);
|
||||
|
||||
void eot();
|
||||
|
||||
/**
|
||||
* If a loading progress can be estimated, a progress ratio between 0.0 and 1.0 is provided as argument.
|
||||
*
|
||||
* @param progress 0.0 meaning "just begun," 1.0 meaning "finished."
|
||||
*/
|
||||
void progress(double progress);
|
||||
|
||||
}
|
||||
+3
@@ -59,4 +59,7 @@ public class SwissTimingReplayAdapter implements SwissTimingReplayListener {
|
||||
@Override
|
||||
public void eot() {}
|
||||
|
||||
@Override
|
||||
public void progress(double progress) {}
|
||||
|
||||
}
|
||||
-1
@@ -132,7 +132,6 @@ public class SwissTimingReplayServiceImpl implements SwissTimingReplayService {
|
||||
bos.write(buf, 0, read);
|
||||
}
|
||||
new SwissTimingReplayParserImpl().readData(new ByteArrayInputStream(bos.getBuffer(), 0, bos.size()), replayListener);
|
||||
|
||||
bos.close();
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException(e);
|
||||
|
||||
+17
-1
@@ -44,9 +44,11 @@ import com.sap.sailing.domain.tracking.MarkPassing;
|
||||
import com.sap.sailing.domain.tracking.TrackedRace;
|
||||
import com.sap.sailing.domain.tracking.TrackedRegattaRegistry;
|
||||
import com.sap.sailing.domain.tracking.WindTrack;
|
||||
import com.sap.sailing.domain.tracking.TrackedRaceStatus.Status;
|
||||
import com.sap.sailing.domain.tracking.impl.EmptyWindStore;
|
||||
import com.sap.sailing.domain.tracking.impl.GPSFixMovingImpl;
|
||||
import com.sap.sailing.domain.tracking.impl.MarkPassingImpl;
|
||||
import com.sap.sailing.domain.tracking.impl.TrackedRaceStatusImpl;
|
||||
import com.sap.sailing.domain.tracking.impl.WindImpl;
|
||||
|
||||
import difflib.PatchFailedException;
|
||||
@@ -149,7 +151,7 @@ public class SwissTimingReplayToDomainAdapter extends SwissTimingReplayAdapter {
|
||||
this.domainFactory = domainFactory;
|
||||
}
|
||||
|
||||
public Iterable<? extends TrackedRace> getTrackedRaces() {
|
||||
public Iterable<DynamicTrackedRace> getTrackedRaces() {
|
||||
return trackedRacePerRaceID.values();
|
||||
}
|
||||
|
||||
@@ -307,6 +309,7 @@ public class SwissTimingReplayToDomainAdapter extends SwissTimingReplayAdapter {
|
||||
WindTrack.DEFAULT_MILLISECONDS_OVER_WHICH_TO_AVERAGE_WIND,
|
||||
/* time over which to average speed: */ race.getBoatClass().getApproximateManeuverDurationInMilliseconds(),
|
||||
/* raceDefinitionSetToUpdate */ null);
|
||||
trackedRace.setStatus(new TrackedRaceStatusImpl(Status.LOADING, 0));
|
||||
TimePoint bestStartTimeKnownSoFar = bestStartTimePerRaceID.get(currentRaceID);
|
||||
if (bestStartTimeKnownSoFar != null) {
|
||||
trackedRace.setStartTimeReceived(bestStartTimeKnownSoFar);
|
||||
@@ -365,4 +368,17 @@ public class SwissTimingReplayToDomainAdapter extends SwissTimingReplayAdapter {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void progress(double progress) {
|
||||
DynamicTrackedRace trackedRace = trackedRacePerRaceID.get(currentRaceID);
|
||||
trackedRace.setStatus(new TrackedRaceStatusImpl(Status.LOADING, progress));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void eot() {
|
||||
for (DynamicTrackedRace trackedRace : getTrackedRaces()) {
|
||||
trackedRace.setStatus(new TrackedRaceStatusImpl(Status.FINISHED, 1.0));
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user