1 /*2 * This file is part of DrFTPD, Distributed FTP Daemon.3 * 4 * DrFTPD is free software; you can redistribute it and/or modify5 * it under the terms of the GNU General Public License as published by6 * the Free Software Foundation; either version 2 of the License, or7 * (at your option) any later version.8 * 9 * DrFTPD is distributed in the hope that it will be useful,10 * but WITHOUT ANY WARRANTY; without even the implied warranty of11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the12 * GNU General Public License for more details.13 * 14 * You should have received a copy of the GNU General Public License15 * along with DrFTPD; if not, write to the Free Software16 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA17 */18 package org.drftpd.slaveselection;19 20 import java.io.FileNotFoundException ;21 import java.io.IOException ;22 import java.util.Collection ;23 24 import net.sf.drftpd.NoAvailableSlaveException;25 import net.sf.drftpd.master.BaseFtpConnection;26 import net.sf.drftpd.master.RemoteSlave;27 import net.sf.drftpd.master.SlaveManagerImpl;28 import net.sf.drftpd.master.config.FtpConfig;29 import net.sf.drftpd.mirroring.Job;30 import net.sf.drftpd.remotefile.LinkedRemoteFileInterface;31 32 /**33 * @author mog34 * @version $Id: SlaveSelectionManagerInterface.java,v 1.4 2004/03/06 00:39:47 zubov Exp $35 */36 public interface SlaveSelectionManagerInterface {37 public abstract void reload() throws FileNotFoundException , IOException ;38 /**39 * Checksums call us with null BaseFtpConnection.40 */41 public abstract RemoteSlave getASlave(42 Collection rslaves,43 char direction,44 BaseFtpConnection conn,45 LinkedRemoteFileInterface file)46 throws NoAvailableSlaveException;47 /**48 * Get slave for transfer to master.49 */50 public abstract RemoteSlave getASlaveForMaster(LinkedRemoteFileInterface file, FtpConfig cfg)51 throws NoAvailableSlaveException;52 public abstract SlaveManagerImpl getSlaveManager();53 public abstract RemoteSlave getASlaveForJobDownload(Job job)54 throws NoAvailableSlaveException;55 public abstract RemoteSlave getASlaveForJobUpload(Job job)56 throws NoAvailableSlaveException;57 58 }