summaryrefslogtreecommitdiffstats
path: root/src/main/java/org/openslx/imagemaster/serverconnection/DownloadingClientInfos.java
diff options
context:
space:
mode:
authorNils Schwabe2014-07-04 12:50:59 +0200
committerNils Schwabe2014-07-04 12:50:59 +0200
commitd1ab55e39b392e62ca1f1e41e3c70cf48d676885 (patch)
tree2fcf410f3a7ff4a3acae9ad5502fc933f8887e2c /src/main/java/org/openslx/imagemaster/serverconnection/DownloadingClientInfos.java
parentFix that Globals are initialized before servers are starting up (diff)
downloadmasterserver-d1ab55e39b392e62ca1f1e41e3c70cf48d676885.tar.gz
masterserver-d1ab55e39b392e62ca1f1e41e3c70cf48d676885.tar.xz
masterserver-d1ab55e39b392e62ca1f1e41e3c70cf48d676885.zip
Change handling of connections and add support for download
Diffstat (limited to 'src/main/java/org/openslx/imagemaster/serverconnection/DownloadingClientInfos.java')
-rw-r--r--src/main/java/org/openslx/imagemaster/serverconnection/DownloadingClientInfos.java74
1 files changed, 74 insertions, 0 deletions
diff --git a/src/main/java/org/openslx/imagemaster/serverconnection/DownloadingClientInfos.java b/src/main/java/org/openslx/imagemaster/serverconnection/DownloadingClientInfos.java
new file mode 100644
index 0000000..a403c84
--- /dev/null
+++ b/src/main/java/org/openslx/imagemaster/serverconnection/DownloadingClientInfos.java
@@ -0,0 +1,74 @@
+package org.openslx.imagemaster.serverconnection;
+
+import java.util.HashMap;
+import java.util.List;
+
+/**
+ * Helper class for the ImageProcessor to know some things about the downloading client
+ *
+ */
+public class DownloadingClientInfos
+{
+
+ public final HashMap<String, ImageInfos> downloadingImages = new HashMap<>();
+
+ DownloadingClientInfos()
+ {
+ }
+
+ public void addDownload( String uuid, List<Integer> list, String token )
+ {
+ downloadingImages.put( uuid, new ImageInfos( uuid, list, token ) );
+ }
+
+ public void removeDownload( String uuid )
+ {
+ downloadingImages.remove( uuid );
+ }
+
+ public boolean isDownloading( String uuid )
+ {
+ return downloadingImages.containsKey( uuid );
+ }
+
+ public boolean hasDownloads()
+ {
+ return (downloadingImages.size() > 0);
+ }
+
+ public List<Integer> getLastRequestedBlocks( String uuid )
+ {
+ if ( !downloadingImages.containsKey( uuid ) )
+ return null;
+ return downloadingImages.get( uuid ).lastRequestedBlocks;
+ }
+
+ public void requestBlocks( String uuid, List<Integer> list )
+ {
+ if ( !downloadingImages.containsKey( uuid ) )
+ return;
+ downloadingImages.get( uuid ).lastRequestedBlocks = list;
+ }
+
+ public String getToken( String uuid )
+ {
+ if ( !downloadingImages.containsKey( uuid ) )
+ return null;
+ return downloadingImages.get( uuid ).token;
+ }
+
+ class ImageInfos
+ {
+
+ public final String uuid;
+ public final String token;
+ private List<Integer> lastRequestedBlocks;
+
+ ImageInfos(String uuid, List<Integer> list, String token)
+ {
+ this.uuid = uuid;
+ this.lastRequestedBlocks = list;
+ this.token = token;
+ }
+ }
+}