package org.openslx.imagemaster.serverconnection; import java.io.IOException; import java.util.Iterator; import java.util.List; import java.util.Timer; import java.util.TimerTask; import org.openslx.imagemaster.crcchecker.CRCChecker; /** * Class to schedule crc checks. */ public class CRCScheduler extends TimerTask { @Override public void run() { List list = ImageProcessor.getImagesToCheck(); Iterator iter = list.iterator(); while ( iter.hasNext() ) { UploadingImage image = iter.next(); CRCChecker crcChecker = new CRCChecker( image.getFilename(), image.getCrcFilename() ); for ( int block = 0; block < image.getNumberOfBlocks(); block++ ) { if ( image.needsCheck( block ) ) { try { if ( crcChecker.checkBlock( block ) ) { image.setValid( block ); } else { image.setNeedsRequest( block ); } } catch ( IOException e ) { // TODO: Handle that crc file or image file could not be read. } } } } } public static void startScheduling() { Timer timer = new Timer( "CRCScheduler" ); // start now and fire every 60 s timer.schedule( new CRCScheduler(), 0, 60000 ); } }