From 97c0ed5e907acec1e6cd9510f8657f7da6d7f979 Mon Sep 17 00:00:00 2001 From: Tobias Meuser Date: Sat, 15 Dec 2018 17:59:31 +0100 Subject: [PATCH] Working version for attacker scenario --- .../caching/DefaultCachingComponent.java | 67 ++++++++++--------- 1 file changed, 36 insertions(+), 31 deletions(-) diff --git a/src/de/tud/kom/p2psim/impl/vehicular/caching/DefaultCachingComponent.java b/src/de/tud/kom/p2psim/impl/vehicular/caching/DefaultCachingComponent.java index 4f7fca80..6469bdfa 100755 --- a/src/de/tud/kom/p2psim/impl/vehicular/caching/DefaultCachingComponent.java +++ b/src/de/tud/kom/p2psim/impl/vehicular/caching/DefaultCachingComponent.java @@ -28,11 +28,10 @@ import java.util.Map.Entry; import java.util.Set; import de.tudarmstadt.maki.simonstrator.api.Host; -import de.tudarmstadt.maki.simonstrator.api.Time; +import de.tudarmstadt.maki.simonstrator.api.common.graph.INodeID; import de.tudarmstadt.maki.simonstrator.api.component.ComponentNotAvailableException; import de.tudarmstadt.maki.simonstrator.api.component.network.NetInterface; import de.tudarmstadt.maki.simonstrator.api.component.network.NetworkComponent.NetInterfaceName; -import de.tudarmstadt.maki.simonstrator.api.component.sensor.environment.data.RoadProperty; import de.tudarmstadt.maki.simonstrator.api.component.transition.TransitionEngine; import de.tudarmstadt.maki.simonstrator.api.component.transport.ConnectivityListener; import de.tudarmstadt.maki.simonstrator.api.component.vehicular.VehicleInformationComponent; @@ -50,7 +49,6 @@ import de.tudarmstadt.maki.simonstrator.api.component.vehicular.information.Road import de.tudarmstadt.maki.simonstrator.api.component.vehicular.roadnetwork.RoadNetwork; import de.tudarmstadt.maki.simonstrator.api.component.vehicular.roadnetwork.RoadNetworkEdge; import de.tudarmstadt.maki.simonstrator.api.component.vehicular.roadnetwork.RoadNetworkRoute; -import de.tudresden.sumo.cmd.Simulation; public class DefaultCachingComponent implements CachingComponent, ConnectivityListener { @@ -158,45 +156,52 @@ public class DefaultCachingComponent implements CachingComponent, ConnectivityLi @Override public List getDecidedCacheEntries( Class pCacheEntryClass, Class pCacheValueClass, RoadNetworkEdge pEdge) { - CacheDecisionStrategy decisionStrategy = getCacheDecisionStrategy(pCacheEntryClass); - Set allEverActiveEdges = RoadNetwork.CURRENT_ROAD_NETWORK.getAllEverActiveEdges(); + return getDecidedCacheEntries(pCacheEntryClass, pCacheValueClass, pEdge, null); + } - if (!allEverActiveEdges.contains(pEdge)) { - return null; - } + @Override + public List getDecidedCacheEntries(Class pCacheEntryClass, Class pCacheValueClass, + RoadNetworkEdge pEdge, INodeID pWithoutID) { + CacheDecisionStrategy decisionStrategy = getCacheDecisionStrategy(pCacheEntryClass); + Set allEverActiveEdges = RoadNetwork.CURRENT_ROAD_NETWORK.getAllEverActiveEdges(); - List cacheEntries = getCacheEntries(pCacheEntryClass); + if (!allEverActiveEdges.contains(pEdge)) { + return null; + } - if (cacheEntries == null) { - return null; - } + List cacheEntries = getCacheEntries(pCacheEntryClass); - Map, List> similarCacheEntries = new HashMap<>(); + if (cacheEntries == null) { + return null; + } - for (T t : cacheEntries) { - Object position = getEdgeOrPosition(t); + Map, List> similarCacheEntries = new HashMap<>(); - if (position.equals(pEdge) && (pCacheValueClass == null || t.getValue().getClass().equals(pCacheValueClass))) { - if (!similarCacheEntries.containsKey(t.getValue().getClass())) { - similarCacheEntries.put(t.getValue().getClass(), new ArrayList()); - } - similarCacheEntries.get(t.getValue().getClass()).add(t); - } + for (T t : cacheEntries) { + if (pWithoutID == null || !t.getAttribute(AvailableInformationAttributes.OWNER).equals(pWithoutID)) { + Object position = getEdgeOrPosition(t); - } + if (position.equals(pEdge) && (pCacheValueClass == null || t.getValue().getClass().equals(pCacheValueClass))) { + if (!similarCacheEntries.containsKey(t.getValue().getClass())) { + similarCacheEntries.put(t.getValue().getClass(), new ArrayList()); + } + similarCacheEntries.get(t.getValue().getClass()).add(t); + } + } + } - List decidedInformation = new ArrayList<>(); + List decidedInformation = new ArrayList<>(); - for (List similarInformation : similarCacheEntries.values()) { - if (similarInformation.size() >= _minObservations) { - PointInformation correctInformation = decisionStrategy - .decideOnCorrectInformation(similarInformation); + for (List similarInformation : similarCacheEntries.values()) { + if (similarInformation.size() >= _minObservations) { + PointInformation correctInformation = decisionStrategy + .decideOnCorrectInformation(similarInformation); - decidedInformation.add((T) correctInformation); - } - } + decidedInformation.add((T) correctInformation); + } + } - return decidedInformation; + return decidedInformation; } private CacheDecisionStrategy getCacheDecisionStrategy(Class pCacheEntryClass) -- GitLab