diff options
author | Simon Rettberg | 2016-04-20 17:10:42 +0200 |
---|---|---|
committer | Simon Rettberg | 2016-04-20 17:10:42 +0200 |
commit | f73acba9666cbd61d1caa126103eef0f53bc5ac7 (patch) | |
tree | 77588f0ef1b0824392aa487af79c368a2e4ea103 /dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/fileserv/OutgoingDataTransfer.java | |
parent | [*] Display sat->master progress in client (diff) | |
download | tutor-module-f73acba9666cbd61d1caa126103eef0f53bc5ac7.tar.gz tutor-module-f73acba9666cbd61d1caa126103eef0f53bc5ac7.tar.xz tutor-module-f73acba9666cbd61d1caa126103eef0f53bc5ac7.zip |
More imgsync stuff
Diffstat (limited to 'dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/fileserv/OutgoingDataTransfer.java')
-rw-r--r-- | dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/fileserv/OutgoingDataTransfer.java | 82 |
1 files changed, 9 insertions, 73 deletions
diff --git a/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/fileserv/OutgoingDataTransfer.java b/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/fileserv/OutgoingDataTransfer.java index e2276908..d87cdb9e 100644 --- a/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/fileserv/OutgoingDataTransfer.java +++ b/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/fileserv/OutgoingDataTransfer.java @@ -10,11 +10,11 @@ import java.util.concurrent.ExecutorService; import org.apache.log4j.Logger; import org.openslx.bwlp.sat.util.Configuration; -import org.openslx.bwlp.sat.util.Constants; import org.openslx.bwlp.thrift.iface.TransferInformation; import org.openslx.filetransfer.Uploader; +import org.openslx.filetransfer.util.OutgoingTransferBase; -public class OutgoingDataTransfer extends AbstractTransfer { +public class OutgoingDataTransfer extends OutgoingTransferBase { private static final Logger LOGGER = Logger.getLogger(OutgoingDataTransfer.class); @@ -23,21 +23,16 @@ public class OutgoingDataTransfer extends AbstractTransfer { */ private List<Uploader> uploads = new ArrayList<>(); - private final File sourceFile; - private final TransferInformation masterTransferInfo; - private boolean isCanceled = false; - /** * For downloads by clients. * * @param uuid UUID of this transfer * @param file file to send to client */ - public OutgoingDataTransfer(String uuid, File file) { - super(uuid); - this.sourceFile = file; + public OutgoingDataTransfer(String uuid, File file, int plainPort, int sslPort) { + super(uuid, file, plainPort, sslPort); this.masterTransferInfo = null; } @@ -49,9 +44,8 @@ public class OutgoingDataTransfer extends AbstractTransfer { * @param absFile file to send to master server */ public OutgoingDataTransfer(TransferInformation transferInfo, File absFile) { - super(transferInfo.token); + super(transferInfo.token, absFile, 0, 0); this.masterTransferInfo = transferInfo; - this.sourceFile = absFile; } /** @@ -59,7 +53,7 @@ public class OutgoingDataTransfer extends AbstractTransfer { * can make sure the transfer is running. */ public synchronized void heartBeat(ExecutorService pool) { - if (isCanceled || masterTransferInfo == null) + if (masterTransferInfo == null) return; synchronized (uploads) { if (uploads.size() >= 1) @@ -96,68 +90,10 @@ public class OutgoingDataTransfer extends AbstractTransfer { } } - /** - * Add another connection for this file transfer. - * - * @param connection - * @return true if the connection is accepted, false if it should be - * discarded - */ - public synchronized boolean addConnection(final Uploader connection, ExecutorService pool) { - if (isCanceled || masterTransferInfo != null) - return false; - potentialFinishTime.set(0); - synchronized (uploads) { - if (uploads.size() > Constants.MAX_CONNECTIONS_PER_TRANSFER) - return false; - uploads.add(connection); - } - return runConnectionInternal(connection, pool); - } - - private boolean runConnectionInternal(final Uploader connection, ExecutorService pool) { - try { - pool.execute(new Runnable() { - @Override - public void run() { - boolean ret = connection.upload(sourceFile.getAbsolutePath()); - synchronized (uploads) { - uploads.remove(connection); - } - if (ret && uploads.isEmpty() && potentialFinishTime.get() == 0) { - potentialFinishTime.set(System.currentTimeMillis()); - } - lastActivityTime.set(System.currentTimeMillis()); - } - }); - } catch (Exception e) { - LOGGER.warn("threadpool rejected the incoming file transfer", e); - synchronized (uploads) { - uploads.remove(connection); - } - return false; - } - return true; - } - - @Override - public synchronized void cancel() { - isCanceled = true; - synchronized (uploads) { - for (Uploader u : uploads) { - u.cancel(); - } - } - } - - @Override - public boolean isActive() { - return !isCanceled; - } - @Override - public int getActiveConnectionCount() { - return uploads.size(); + public String getRelativePath() { + // TODO Auto-generated method stub + return null; } } |