1 package edu.uci.iotproject.analysis;
3 import org.apache.commons.math3.ml.clustering.Clusterable;
4 import org.pcap4j.core.PcapPacket;
6 import java.util.Optional;
9 * A simple wrapper for holding a pair of packets (e.g., a request and associated reply packet).
11 * @author Janus Varmarken {@literal <jvarmark@uci.edu>}
12 * @author Rahmadi Trimananda {@literal <rtrimana@uci.edu>}
14 public class PcapPacketPair implements Clusterable {
16 private final PcapPacket mFirst;
18 private final Optional<PcapPacket> mSecond;
20 public PcapPacketPair(PcapPacket first, PcapPacket second) {
22 mSecond = Optional.ofNullable(second);
25 public PcapPacket getFirst() { return mFirst; }
27 public Optional<PcapPacket> getSecond() { return mSecond; }
30 public String toString() {
31 return String.format("%d, %s",
32 getFirst().getOriginalLength(),
33 getSecond().map(pkt -> Integer.toString(pkt.getOriginalLength())).orElse("null"));
37 public double[] getPoint() {