introduced TrackedRaceStatus as first step towards addressing bug 1175; replication of status updates already supported

This commit is contained in:
Axel Uhl committed 2013-01-26 14:58:33 +01:00
1 parent b2e3db25a8
commit 4a580983d5
29 files changed
+341 -62

No files matched your search

@@ -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);
}
@@ -59,4 +59,7 @@ public class SwissTimingReplayAdapter implements SwissTimingReplayListener {
@Override
public void eot() {}
@Override
public void progress(double progress) {}
}
@@ -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);
@@ -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));
}
}
}