package de.tu_darmstadt.tk.SmartHomeNetworkSim.core.simpleImplementation;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.Map.Entry;
import de.tu_darmstadt.tk.SmartHomeNetworkSim.core.Link;
import de.tu_darmstadt.tk.SmartHomeNetworkSim.core.Packet;
import de.tu_darmstadt.tk.SmartHomeNetworkSim.core.PacketSniffer;
/**
* SimpleImplementation of the PacketSniffer interface, which counts the packets sent per link and print them to the console.
*
*
* @author Andreas T. Meyer-Berg
*/
public class SimplePacketSniffer implements PacketSniffer {
/**
* True if in testing mode;
*/
private boolean testing = true;
@Override
public void processPackets(HashMap> packets) {
System.out.println("PacketSniffer: ");
if(packets==null)return;
/**
* Print all links and their number of packets sent
*/
for(Entry> e:packets.entrySet()){
if(e == null || e.getKey() == null || e.getValue() == null)continue;
System.out.println(e.getKey().getName()+": "+e.getValue().size()+" Packets");
}
System.out.println("");
}
@Override
public void setMode(boolean testing) {
this.testing = testing;
}
@Override
public boolean getMode() {
return this.testing;
}
}