summaryrefslogtreecommitdiffstats
path: root/src/main/java/org/openslx/imagemaster/serverconnection/DownloadingClient.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org/openslx/imagemaster/serverconnection/DownloadingClient.java')
-rw-r--r--src/main/java/org/openslx/imagemaster/serverconnection/DownloadingClient.java75
1 files changed, 75 insertions, 0 deletions
diff --git a/src/main/java/org/openslx/imagemaster/serverconnection/DownloadingClient.java b/src/main/java/org/openslx/imagemaster/serverconnection/DownloadingClient.java
new file mode 100644
index 0000000..0acfa42
--- /dev/null
+++ b/src/main/java/org/openslx/imagemaster/serverconnection/DownloadingClient.java
@@ -0,0 +1,75 @@
+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 DownloadingClient
+{
+
+ public final HashMap<String, ImageInfos> downloadingImages = new HashMap<>();
+
+ DownloadingClient()
+ {
+ }
+
+ 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;
+ }
+ }
+
+}