summaryrefslogtreecommitdiffstats
path: root/dozentenmodul/src/main/java/org/openslx/dozmod/filetransfer/UploadTask.java
diff options
context:
space:
mode:
Diffstat (limited to 'dozentenmodul/src/main/java/org/openslx/dozmod/filetransfer/UploadTask.java')
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/filetransfer/UploadTask.java6
1 files changed, 5 insertions, 1 deletions
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/filetransfer/UploadTask.java b/dozentenmodul/src/main/java/org/openslx/dozmod/filetransfer/UploadTask.java
index 6eb8a988..7396d1d2 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/filetransfer/UploadTask.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/filetransfer/UploadTask.java
@@ -34,6 +34,7 @@ public class UploadTask extends TransferTask {
private final String host;
private final int port;
private final String uploadToken;
+ private final long startTime;
private String remoteError = null;
/**
@@ -59,6 +60,7 @@ public class UploadTask extends TransferTask {
this.host = host;
this.port = port;
this.uploadToken = uploadToken;
+ this.startTime = System.currentTimeMillis();
}
private class UploadThread extends TransferThread {
@@ -143,6 +145,7 @@ public class UploadTask extends TransferTask {
}
private long lastThriftUpdate = 0;
+ private long virtualSpeed = 0;
@Override
protected TransferEvent getTransferEvent() {
@@ -181,12 +184,13 @@ public class UploadTask extends TransferTask {
}
final long bytesRemaining = CHUNK_SIZE * (long) missing;
timeRemaining = (1000 * bytesRemaining) / (speed + 1);
+ virtualSpeed = ((blocks.length - missing) * CHUNK_SIZE * 1000) / (System.currentTimeMillis() - startTime + 1);
}
}
if (remoteError != null && (error == null || remoteError.equals("Out of disk space"))) {
error = remoteError;
}
- TransferEvent event = new TransferEvent(state, blocks, speed, timeRemaining, error);
+ TransferEvent event = new TransferEvent(state, blocks, speed, virtualSpeed, timeRemaining, error);
return event;
}