Conversation: ensure packets are added to list in descending order of their timestamps.
[pingpong.git] / Code / Projects / SmartPlugDetector / src / main / java / edu / uci / iotproject / PcapProcessingPipeline.java
1 package edu.uci.iotproject;
2
3 import org.pcap4j.core.PcapPacket;
4
5 import java.util.ArrayList;
6 import java.util.List;
7
8 /**
9  * TODO add class documentation.
10  *
11  * @author Janus Varmarken {@literal <jvarmark@uci.edu>}
12  * @author Rahmadi Trimananda {@literal <rtrimana@uci.edu>}
13  */
14 public class PcapProcessingPipeline {
15
16     private final PcapReader mPcapReader;
17     private final List<PcapPacketConsumer> mPacketConsumers;
18
19     public PcapProcessingPipeline(PcapReader pcapReader) {
20         mPcapReader = pcapReader;
21         mPacketConsumers = new ArrayList<>();
22     }
23
24     public void addPcapPacketConsumer(PcapPacketConsumer packetConsumer) {
25         mPacketConsumers.add(packetConsumer);
26     }
27
28     public void executePipeline() {
29         PcapPacket packet;
30         while ((packet = mPcapReader.readNextPacket()) != null) {
31             for (PcapPacketConsumer consumer : mPacketConsumers) {
32                 consumer.consumePacket(packet);
33             }
34         }
35     }
36
37 }