diff options
Diffstat (limited to 'dozentenmodulserver/src/main/java/fileserv/FileServer.java')
| -rw-r--r-- | dozentenmodulserver/src/main/java/fileserv/FileServer.java | 107 |
1 files changed, 0 insertions, 107 deletions
diff --git a/dozentenmodulserver/src/main/java/fileserv/FileServer.java b/dozentenmodulserver/src/main/java/fileserv/FileServer.java deleted file mode 100644 index e82fa39c..00000000 --- a/dozentenmodulserver/src/main/java/fileserv/FileServer.java +++ /dev/null @@ -1,107 +0,0 @@ -package fileserv; - -import java.io.File; -import java.io.FileNotFoundException; -import java.io.IOException; -import java.nio.ByteBuffer; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.UUID; -import java.util.concurrent.ConcurrentHashMap; - -import org.openslx.bwlp.thrift.iface.TTransferRejectedException; -import org.openslx.bwlp.thrift.iface.UserInfo; -import org.openslx.filetransfer.Downloader; -import org.openslx.filetransfer.IncomingEvent; -import org.openslx.filetransfer.Listener; -import org.openslx.filetransfer.Uploader; - -import util.Constants; -import util.Formatter; - -public class FileServer implements IncomingEvent { - - /** - * Listener for incoming unencrypted connections - */ - private Listener plainListener = new Listener(this, null, 9092); // TODO: Config - - /** - * All currently running uploads, indexed by token - */ - private Map<String, ActiveUpload> uploads = new ConcurrentHashMap<>(); - - private static final FileServer globalInstance = new FileServer(); - - private FileServer() { - } - - public static FileServer instance() { - return globalInstance; - } - - public boolean start() { - boolean ret = plainListener.start(); - // TODO: Start SSL listener too - return ret; - } - - @Override - public void incomingDownloadRequest(Uploader uploader) throws IOException { - // TODO Auto-generated method stub - - } - - @Override - public void incomingUploadRequest(Downloader downloader) throws IOException { - // TODO Auto-generated method stub - - } - - /** - * Get an upload instance by given token. - * - * @param uploadToken - * @return - */ - public ActiveUpload getUploadByToken(String uploadToken) { - return uploads.get(uploadToken); - } - - public String createNewUserUpload(UserInfo owner, long fileSize, List<ByteBuffer> sha1Sums) - throws TTransferRejectedException, FileNotFoundException { - Iterator<ActiveUpload> it = uploads.values().iterator(); - int activeUploads = 0; - while (it.hasNext()) { - ActiveUpload upload = it.next(); - if (upload.isComplete()) { - // TODO: Check age (short timeout) and remove - continue; - } else { - // Check age (long timeout) and remove - } - activeUploads++; - } - if (activeUploads > Constants.MAX_UPLOADS) - throw new TTransferRejectedException("Server busy. Too many running uploads."); - File destinationFile = null; - do { - destinationFile = Formatter.getTempImageName(); - } while (destinationFile.exists()); - // TODO: Pass image - ActiveUpload upload = new ActiveUpload(owner, null, destinationFile, fileSize, sha1Sums); - String key = UUID.randomUUID().toString(); - uploads.put(key, upload); - return key; - } - - public int getPlainPort() { - return plainListener.getPort(); - } - - public int getSslPort() { - return 0; // TODO - } - -} |
