package p2pp; import java.io.IOException; import java.util.List; import p2pp.FileDownloadProgressListener.LogReader; import p2pp.FileDownloadProgressListener.Piece; import p2pp.FileDownloadProgressListener.Request; public class PlaybackAnalyzer implements Analyzer<Integer> { private List<Piece> pieces; // Pieces per miliseconds (depends on the time unit used). private double bitrate; public PlaybackAnalyzer(String filename, double bitrate) throws IOException { this.bitrate = bitrate; LogReader reader = new LogReader(filename); this.pieces = reader.read(true); } @Override public Integer analyze() { double result = 0; for(Piece piece : pieces) { List<Request> requests = piece.getRequests(); Request last = requests.get(0); double at = ((double) last.getReceived()) - (piece.getId() / bitrate); if(at > result) result = at; } return (int) result; } }