Public Member Functions | |
KnownVehiclesList () | |
synchronized void | updateVehicle (Vehicle vehicle, long ID, int x, int y, double speed, long sourceID, boolean isEncrypted, boolean isARSU) |
void | checkOutdatedVehicles () |
Vehicle | findNearestVehicle (int vehicleX, int vehicleY, int destX, int destY, int maxDistance) |
KnownVehicle[] | getFirstKnownVehicle () |
int | getSize () |
void | clear () |
Static Public Member Functions | |
static void | setTimePassed (int time) |
A list of all known vehicles which was discovered through beacons. In contrast to the KnownPenalties- class, an own class is used for storing the information about the vehicles. Although this means slightly more overhead, it should not be a big case and allows better extensibility.
A simple hash algorithm based on the vehicle ID is used to get better performance. The hash determines the corresponding linked list(beginnings of linked lists are found in head_
). Known vehicles with the same hash are connected together through their next_
and previous_
values (see KnownVehicle-class).
|
inline |
Empty constructor.
|
inline |
Checks if a vehicle is too old so that it can be removed. Note that this function is not synchronized! You need to make sure that no other thread uses any function on this object at the same time!
|
inline |
Clears everything from this data structure.
|
inline |
Finds the nearest known vehicle to a destination.
vehicleX | the x coordinate of the calling vehicle |
vehicleY | the y coordinate of the calling vehicle |
destX | the x coordinate of the destination |
destY | the y coordinate of the destination |
maxDistance | the maximum distance the nearest vehicle max have from the calling vehicle |
null
if the calling vehicle is the nearest
|
inline |
Gets an hashed array with known vehicles (array length depends on the HASH_SIZE). You can iterate through all known vehicles by using getNext()
until you get to a null
element on all elements of this array
|
inline |
Gets the amount of known vehicles stored.
|
inlinestatic |
Sets the time passed since simulation start.
time | the new time in milliseconds |
|
inline |
Update a vehicle or add it if it doesn't exist yet.
vehicle | a reference to the vehicle |
ID | the ID of the vehicle |
x | the x coordinate |
y | the y coordinate |
speed | the speed |
sourceID | ID of the source |
isEncrypted | if Beacon was encrypted |
isARSU | if Beacon was sent from an ARSU |