package edu.usc.enl.dynamicmeasurement.process.scripts; import edu.usc.enl.dynamicmeasurement.algorithms.matcher.HashMatcher; import edu.usc.enl.dynamicmeasurement.algorithms.matcher.Matcher; import edu.usc.enl.dynamicmeasurement.data.FinishPacket; import edu.usc.enl.dynamicmeasurement.model.WildcardPattern; import edu.usc.enl.dynamicmeasurement.process.EpochPacket; import edu.usc.enl.dynamicmeasurement.process.StepPacketUser; import java.util.List; import java.util.Map; import java.util.TreeMap; /** * Created with IntelliJ IDEA. * User: Masoud * Date: 2/4/13 * Time: 9:29 AM */ public class TestPrefixReport extends StepPacketUser { private final Matcher matcher; private double sum = 0; private Map<WildcardPattern, Double[]> maxSumWeights; public TestPrefixReport(boolean resetOnStep, List<WildcardPattern> monitors) { super(); this.matcher = new HashMatcher(); matcher.setMonitors(monitors); maxSumWeights = new TreeMap<>(); for (WildcardPattern monitor : monitors) { maxSumWeights.put(monitor, new Double[]{0d, 0d}); } } @Override protected void process2(edu.usc.enl.dynamicmeasurement.data.DataPacket p) { sum += p.getSize(); WildcardPattern match = matcher.match(p); if (match != null) { match.setWeight(match.getWeight() + p.getSize()); } } @Override protected void step(EpochPacket p) { System.out.println(p.getStep() + "," + sum); } @Override protected void reset() { sum = 0; for (WildcardPattern monitor : maxSumWeights.keySet()) { Double[] stats = maxSumWeights.get(monitor); stats[0] += monitor.getWeight(); stats[1] = Math.max(stats[1], monitor.getWeight()); monitor.setWeight(0); } } @Override public void finish(FinishPacket p) { System.out.println("wildcard,sum,max"); for (WildcardPattern monitor : maxSumWeights.keySet()) { Double[] stats = maxSumWeights.get(monitor); System.out.println(monitor + ", " + stats[0] + "," + stats[1]); } } }