Ref: cleanup, organise packages
This commit is contained in:
41
src/main/java/com/sheepit/client/ui/TransferStats.java
Normal file
41
src/main/java/com/sheepit/client/ui/TransferStats.java
Normal file
@@ -0,0 +1,41 @@
|
||||
package com.sheepit.client.ui;
|
||||
|
||||
import com.sheepit.client.utils.Utils;
|
||||
import lombok.AllArgsConstructor;
|
||||
|
||||
/****************
|
||||
* Holds the session traffic statistics. The constructor accepts two parameters:
|
||||
* long bytes - bytes transferred in the session
|
||||
* long millis - milliseconds 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)));
|
||||
}
|
||||
}
|
||||
|
||||
public long getRawAverageSessionSpeed() {
|
||||
return this.millis != 0 ? (long) (this.bytes / (this.millis / 1000f)) : 0;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user