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 downloadingImages = new HashMap<>(); DownloadingClientInfos() { } public void addDownload( String uuid, int port, List list, String token ) { downloadingImages.put( uuid, new ImageInfos( uuid, port, 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 uuid ) { if ( !downloadingImages.containsKey( uuid ) ) return null; return downloadingImages.get( uuid ).lastRequestedBlocks; } 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; } public int getPort( String uuid ) { return downloadingImages.get( uuid ).port; } class ImageInfos { public final String uuid; public final String token; public final int port; private List lastRequestedBlocks; ImageInfos(String uuid, int port, List list, String token) { this.uuid = uuid; this.lastRequestedBlocks = list; this.token = token; this.port = port; } } }