Files
sheepit-shadow-nabber/src/com/sheepit/client/TransferStats.java
Luis Uguina d152e0b0ff Feature: add session data consumption information in GUI/text UIs (#287)
* Feature: add session data consumption information in GUI/text UIs

Adds the total bytes downloaded and uploaded in the current session as well as the average data transfer rate for both UL/DL. The information is not added to the 1-line UI as the line will take 150+ characters in the screen.
2020-09-12 02:00:24 +02:00

37 lines
965 B
Java

package com.sheepit.client;
import lombok.AllArgsConstructor;
/****************
* Holds the session traffic statistics. The constructor accepts two parameters:
* @long bytes - bytes transferred in the session
* @Job seconds - seconds spent transferring the data
*/
@AllArgsConstructor
public class TransferStats {
private long bytes;
private long millis;
public TransferStats() {
this.bytes = 0;
this.millis = 0;
}
public void calc(long bytes, long millis) {
this.bytes += bytes;
this.millis += millis;
}
public String getSessionTraffic() {
return Utils.formatDataConsumption(this.bytes);
}
public String getAverageSessionSpeed() {
try {
return Utils.formatDataConsumption((long) (this.bytes / (this.millis / 1000f)));
} catch (ArithmeticException e) { // Unlikely, but potential division by zero fallback if first transfer is done in zero millis
return Utils.formatDataConsumption((long) (this.bytes / (0.1f)));
}
}
}