diff options
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.java | 6 |
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; } |