diff options
author | Nils Schwabe | 2014-07-04 12:50:59 +0200 |
---|---|---|
committer | Nils Schwabe | 2014-07-04 12:50:59 +0200 |
commit | d1ab55e39b392e62ca1f1e41e3c70cf48d676885 (patch) | |
tree | 2fcf410f3a7ff4a3acae9ad5502fc933f8887e2c /src/main/java/org/openslx/imagemaster/serverconnection/DownloadingClientInfos.java | |
parent | Fix that Globals are initialized before servers are starting up (diff) | |
download | masterserver-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.java | 74 |
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; + } + } +} |