f77531f0f6a083629a1c5ee798170abfa58b8029
[pingpong.git] / Code / Projects / SmartPlugDetector / src / main / java / edu / uci / iotproject / analysis / PcapPacketPair.java
1 package edu.uci.iotproject.analysis;
2
3 import org.apache.commons.math3.ml.clustering.Clusterable;
4 import org.pcap4j.core.PcapPacket;
5
6 import java.util.Optional;
7
8 /**
9  * A simple wrapper for holding a pair of packets (e.g., a request and associated reply packet).
10  *
11  * @author Janus Varmarken {@literal <jvarmark@uci.edu>}
12  * @author Rahmadi Trimananda {@literal <rtrimana@uci.edu>}
13  */
14 public class PcapPacketPair implements Clusterable {
15
16     private final PcapPacket mFirst;
17
18     private final Optional<PcapPacket> mSecond;
19
20     public PcapPacketPair(PcapPacket first, PcapPacket second) {
21         mFirst = first;
22         mSecond = Optional.ofNullable(second);
23     }
24
25     public PcapPacket getFirst() { return mFirst; }
26
27     public Optional<PcapPacket> getSecond() { return mSecond; }
28
29     @Override
30     public String toString() {
31         return String.format("%d, %s",
32                 getFirst().getOriginalLength(),
33                 getSecond().map(pkt -> Integer.toString(pkt.getOriginalLength())).orElse("null"));
34     }
35
36     @Override
37     public double[] getPoint() {
38         return new double[0];
39     }
40 }