started to introduce TrackedEventRegistry in SwissTiming stuff

This commit is contained in:
Axel Uhl committed 2011-11-14 17:17:20 +01:00
1 parent ef4547357f
commit 127c95a252
5 files changed
+14 -6

No files matched your search

@@ -5,6 +5,7 @@ import java.net.UnknownHostException;
import com.sap.sailing.domain.base.TimePoint;
import com.sap.sailing.domain.swisstimingadapter.impl.SwissTimingFactoryImpl;
import com.sap.sailing.domain.tracking.TrackedEventRegistry;
import com.sap.sailing.domain.tracking.WindStore;
public interface SwissTimingFactory {
@@ -39,7 +40,7 @@ public interface SwissTimingFactory {
SwissTimingConfiguration createSwissTimingConfiguration(String name, String hostname, int port);
SwissTimingRaceTracker createRaceTracker(String raceID, String hostname, int port, WindStore windStore, RaceSpecificMessageLoader messageLoader) throws InterruptedException, UnknownHostException, IOException;
SwissTimingRaceTracker createRaceTracker(String raceID, String hostname, int port, WindStore windStore, RaceSpecificMessageLoader messageLoader, TrackedEventRegistry trackedEventRegistry) throws InterruptedException, UnknownHostException, IOException;
Race createRace(String raceId, String description, TimePoint startTime);
@@ -16,6 +16,7 @@ import com.sap.sailing.domain.swisstimingadapter.SwissTimingConfiguration;
import com.sap.sailing.domain.swisstimingadapter.SwissTimingFactory;
import com.sap.sailing.domain.swisstimingadapter.SwissTimingMessageParser;
import com.sap.sailing.domain.swisstimingadapter.SwissTimingRaceTracker;
import com.sap.sailing.domain.tracking.TrackedEventRegistry;
import com.sap.sailing.domain.tracking.WindStore;
import com.sap.sailing.util.Util.Triple;
@@ -53,8 +54,9 @@ public class SwissTimingFactoryImpl implements SwissTimingFactory {
@Override
public SwissTimingRaceTracker createRaceTracker(String raceID, String hostname, int port, WindStore windStore,
RaceSpecificMessageLoader messageLoader) throws InterruptedException, UnknownHostException, IOException {
return new SwissTimingRaceTrackerImpl(raceID, hostname, port, this, messageLoader);
RaceSpecificMessageLoader messageLoader, TrackedEventRegistry trackedEventRegistry)
throws InterruptedException, UnknownHostException, IOException {
return new SwissTimingRaceTrackerImpl(raceID, hostname, port, this, messageLoader, trackedEventRegistry);
}
@Override
@@ -26,20 +26,25 @@ import com.sap.sailing.domain.swisstimingadapter.SwissTimingFactory;
import com.sap.sailing.domain.swisstimingadapter.SwissTimingRaceTracker;
import com.sap.sailing.domain.tracking.DynamicTrackedEvent;
import com.sap.sailing.domain.tracking.RaceHandle;
import com.sap.sailing.domain.tracking.TrackedEventRegistry;
import com.sap.sailing.domain.tracking.WindStore;
import com.sap.sailing.util.Util.Triple;
public class SwissTimingRaceTrackerImpl implements SwissTimingRaceTracker, SailMasterListener {
private final SailMasterConnector connector;
private RaceDefinition race;
private final String raceID;
private final RaceSpecificMessageLoader messageLoader;
private final TrackedEventRegistry trackedEventRegistry;
private RaceDefinition race;
private Course course;
private StartList startList;
protected SwissTimingRaceTrackerImpl(String raceID, String hostname, int port, SwissTimingFactory factory,
RaceSpecificMessageLoader messageLoader) throws InterruptedException, UnknownHostException, IOException {
RaceSpecificMessageLoader messageLoader, TrackedEventRegistry trackedEventRegistry)
throws InterruptedException, UnknownHostException, IOException {
this.connector = factory.getOrCreateSailMasterConnector(hostname, port, messageLoader);
this.trackedEventRegistry = trackedEventRegistry;
this.raceID = raceID;
this.messageLoader = messageLoader;
connector.addSailMasterListener(raceID, this);
@@ -233,7 +233,7 @@ public class RacingEventServiceImpl implements RacingEventService {
Triple<String, String, Integer> key = new Triple<String, String, Integer>(raceID, hostname, port);
RaceTracker tracker = raceTrackersByID.get(key);
if (tracker == null) {
tracker = getSwissTimingFactory().createRaceTracker(raceID, hostname, port, windStore, swissTimingAdapterPersistence);
tracker = getSwissTimingFactory().createRaceTracker(raceID, hostname, port, windStore, swissTimingAdapterPersistence, this);
raceTrackersByID.put(tracker.getID(), tracker);
Set<RaceTracker> trackers = raceTrackersByEvent.get(tracker.getEvent());
if (trackers == null) {