Added LatestMessages to network.Messages. This is an object that encapsulates the latest up to date set of race messages.
Race stores a reference to it. MockRace writes to it, and eventually, VisualiserRace will read from it. Updated MockRace, MockOutput, Event to use it. Angle now implements hashCode().main
parent
3a0b81834f
commit
8e18ad62ca
@ -0,0 +1,142 @@
|
||||
package network.Messages;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* This class contains a set of the latest messages received (e.g., the latest RaceStatus, the latest BoatLocation for each boat, etc...).
|
||||
*/
|
||||
public class LatestMessages {
|
||||
|
||||
/**
|
||||
* The latest RaceStatus message.
|
||||
*/
|
||||
private RaceStatus raceStatus;
|
||||
|
||||
/**
|
||||
* A map of the last BoatStatus message received, for each boat.
|
||||
*/
|
||||
private final Map<Integer, BoatStatus> boatStatusMap = new HashMap<>();
|
||||
|
||||
/**
|
||||
* A map of the last BoatLocation message received, for each boat.
|
||||
*/
|
||||
private final Map<Integer, BoatLocation> boatLocationMap = new HashMap<>();
|
||||
|
||||
/**
|
||||
* The last AverageWind message received.
|
||||
*/
|
||||
private AverageWind averageWind;
|
||||
|
||||
/**
|
||||
* The last CourseWinds message received.
|
||||
*/
|
||||
private CourseWinds courseWinds;
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Ctor.
|
||||
*/
|
||||
public LatestMessages() {
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Gets the latest RaceStatus message received.
|
||||
* @return The latest RaceStatus message received.
|
||||
*/
|
||||
public RaceStatus getRaceStatus() {
|
||||
return raceStatus;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the latest RaceStatus message received.
|
||||
* @param raceStatus The new RaceStatus message to store.
|
||||
*/
|
||||
public void setRaceStatus(RaceStatus raceStatus) {
|
||||
this.raceStatus = raceStatus;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Returns the latest BoatStatus message received for a given boat.
|
||||
* @param sourceID Source ID of the boat.
|
||||
* @return The latest BoatStatus message for the specified boat.
|
||||
*/
|
||||
public BoatStatus getBoatStatus(int sourceID) {
|
||||
return boatStatusMap.get(sourceID);
|
||||
}
|
||||
|
||||
/**
|
||||
* Inserts a BoatStatus message for a given boat.
|
||||
* @param boatStatus The BoatStatus message to set.
|
||||
*/
|
||||
public void setBoatStatus(BoatStatus boatStatus) {
|
||||
boatStatusMap.put(boatStatus.getSourceID(), boatStatus);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Returns the latest BoatLocation message received for a given boat.
|
||||
* @param sourceID Source ID of the boat.
|
||||
* @return The latest BoatLocation message for the specified boat.
|
||||
*/
|
||||
public BoatLocation getBoatLocation(int sourceID) {
|
||||
return boatLocationMap.get(sourceID);
|
||||
}
|
||||
|
||||
/**
|
||||
* Inserts a BoatLocation message for a given boat.
|
||||
* @param boatLocation The BoatLocation message to set.
|
||||
*/
|
||||
public void setBoatLocation(BoatLocation boatLocation) {
|
||||
//TODO should compare the sequence number of the new boatLocation with the existing boatLocation for this boat (if it exists), and use the newer one.
|
||||
boatLocationMap.put(boatLocation.getSourceID(), boatLocation);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Gets the latest AverageWind message received.
|
||||
* @return The latest AverageWind message received.
|
||||
*/
|
||||
public AverageWind getAverageWind() {
|
||||
return averageWind;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the latest AverageWind message received.
|
||||
* @param averageWind The new AverageWind message to store.
|
||||
*/
|
||||
public void setAverageWind(AverageWind averageWind) {
|
||||
this.averageWind = averageWind;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Gets the latest CourseWinds message received.
|
||||
* @return The latest CourseWinds message received.
|
||||
*/
|
||||
public CourseWinds getCourseWinds() {
|
||||
return courseWinds;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the latest CourseWinds message received.
|
||||
* @param courseWinds The new CourseWinds message to store.
|
||||
*/
|
||||
public void setCourseWinds(CourseWinds courseWinds) {
|
||||
this.courseWinds = courseWinds;
|
||||
}
|
||||
|
||||
|
||||
public Map<Integer, BoatLocation> getBoatLocationMap() {
|
||||
return boatLocationMap;
|
||||
}
|
||||
}
|
||||
Loading…
Reference in new issue