summaryrefslogtreecommitdiffstats
path: root/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/fileserv/OutgoingDataTransfer.java
diff options
context:
space:
mode:
authorSimon Rettberg2016-04-20 17:10:42 +0200
committerSimon Rettberg2016-04-20 17:10:42 +0200
commitf73acba9666cbd61d1caa126103eef0f53bc5ac7 (patch)
tree77588f0ef1b0824392aa487af79c368a2e4ea103 /dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/fileserv/OutgoingDataTransfer.java
parent[*] Display sat->master progress in client (diff)
downloadtutor-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.java82
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;
}
}