1 18 package org.drftpd.slaveselection.filter; 19 20 import java.net.InetAddress ; 21 import java.util.Iterator ; 22 import java.util.Properties ; 23 24 import net.sf.drftpd.NoAvailableSlaveException; 25 import net.sf.drftpd.master.config.FtpConfig; 26 import net.sf.drftpd.master.usermanager.User; 27 import net.sf.drftpd.remotefile.LinkedRemoteFileInterface; 28 import net.sf.drftpd.util.Time; 29 30 34 public class MintimeonlineFilter extends Filter { 35 36 private float _multiplier; 37 38 private long _minTime; 39 40 public MintimeonlineFilter(FilterChain fc, int i, Properties p) { 41 _minTime = Time.parseTime(FtpConfig.getProperty(p, i + ".mintime")); 42 _multiplier = 43 BandwidthFilter.parseMultiplier( 44 FtpConfig.getProperty(p, i + ".multiplier")); 45 } 46 47 public void process( 48 ScoreChart scorechart, 49 User user, 50 InetAddress peer, 51 char direction, 52 LinkedRemoteFileInterface dir) 53 throws NoAvailableSlaveException { 54 55 for (Iterator iter = scorechart.getSlaveScores().iterator(); 56 iter.hasNext(); 57 ) { 58 ScoreChart.SlaveScore score = (ScoreChart.SlaveScore) iter.next(); 59 long lastTransfer = 60 System.currentTimeMillis() 61 - score.getRSlave().getLastTransferForDirection(direction); 62 if (lastTransfer < _minTime) { 63 score.addScore(- (long) (lastTransfer * _multiplier)); 64 } 65 66 } 67 } 68 69 } 70 | Popular Tags |