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 | 24 |
1 files changed, 24 insertions, 0 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 71c7add8..6eb8a988 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/filetransfer/UploadTask.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/filetransfer/UploadTask.java @@ -2,6 +2,7 @@ package org.openslx.dozmod.filetransfer; import java.io.File; import java.io.FileNotFoundException; +import java.util.concurrent.atomic.AtomicInteger; import org.apache.log4j.Logger; import org.apache.thrift.TException; @@ -34,6 +35,20 @@ public class UploadTask extends TransferTask { private final int port; private final String uploadToken; private String remoteError = null; + + /** + * Keep track of the number of active upload connections + */ + private static AtomicInteger numConnections = new AtomicInteger(); + + /** + * Get the number of active upload workers. This counts individual + * upload connections, not logical uploads which might use more than + * one connection at a time. + */ + public static int getNumberOfUploads() { + return numConnections.get(); + } public UploadTask(String host, int port, String uploadToken, File uploadFile) throws FileNotFoundException { @@ -53,6 +68,15 @@ public class UploadTask extends TransferTask { @Override public void run() { + numConnections.incrementAndGet(); + try { + run2(); + } finally { + numConnections.decrementAndGet(); + } + } + + public void run2() { try { uploader = new Uploader(host, port, Config.TRANSFER_TIMEOUT, null, uploadToken); } catch (Exception e) { |