SimplePacketSniffer.java 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. package de.tu_darmstadt.tk.SmartHomeNetworkSim.core.simpleImplementation;
  2. import java.util.HashMap;
  3. import java.util.LinkedList;
  4. import java.util.Map.Entry;
  5. import de.tu_darmstadt.tk.SmartHomeNetworkSim.core.Link;
  6. import de.tu_darmstadt.tk.SmartHomeNetworkSim.core.Packet;
  7. import de.tu_darmstadt.tk.SmartHomeNetworkSim.core.PacketSniffer;
  8. /**
  9. * SimpleImplementation of the PacketSniffer interface, which counts the packets sent per link and print them to the console.
  10. *
  11. *
  12. * @author Andreas T. Meyer-Berg
  13. */
  14. public class SimplePacketSniffer implements PacketSniffer {
  15. /**
  16. * True if in testing mode;
  17. */
  18. private boolean testing = true;
  19. @Override
  20. public void processPackets(HashMap<Link, LinkedList<Packet>> packets) {
  21. System.out.println("PacketSniffer: ");
  22. if(packets==null)return;
  23. /**
  24. * Print all links and their number of packets sent
  25. */
  26. for(Entry<Link, LinkedList<Packet>> e:packets.entrySet()){
  27. if(e == null || e.getKey() == null || e.getValue() == null)continue;
  28. System.out.println(e.getKey().getName()+": "+e.getValue().size()+" Packets");
  29. }
  30. System.out.println("");
  31. }
  32. @Override
  33. public void setMode(boolean testing) {
  34. this.testing = testing;
  35. }
  36. @Override
  37. public boolean getMode() {
  38. return this.testing;
  39. }
  40. }