package org.openslx.imagemaster.serverconnection; import java.util.HashMap; import java.util.List; import java.util.Map; /** * Helper class for the ImageProcessor and ConnectionHandler to know some things about the downloading client */ public class DownloadingClient { private final HashMap downloadingImages = new HashMap<>(); public void addDownload( String uuid, List 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 getLastRequestedBlocks( String token ) { for (Map.Entry entry : downloadingImages.entrySet() ) { if (entry.getValue().token.equals( token )) return entry.getValue().lastRequestedBlocks; } return null; } public void requestBlocks( String uuid, List 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 lastRequestedBlocks; ImageInfos(String uuid, List list, String token) { this.uuid = uuid; this.lastRequestedBlocks = list; this.token = token; } } }