From c89abbfa830876b7298eb96896a642bc74589651 Mon Sep 17 00:00:00 2001 From: Nils Schwabe Date: Thu, 10 Jul 2014 16:08:36 +0200 Subject: Add some better thread synchonization Restructure some classes Fix small connection issues --- .../serverconnection/DownloadingClient.java | 75 ++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 src/main/java/org/openslx/imagemaster/serverconnection/DownloadingClient.java (limited to 'src/main/java/org/openslx/imagemaster/serverconnection/DownloadingClient.java') 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 downloadingImages = new HashMap<>(); + + DownloadingClient() + { + } + + 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 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; + } + + 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; + } + } + +} -- cgit v1.2.3-55-g7522