package org.dcache.poolmanager; import java.util.Collection; import diskCacheV111.poolManager.CostModule; import diskCacheV111.poolManager.PoolSelectionUnit; import diskCacheV111.pools.PoolCostInfo; import diskCacheV111.util.FileLocality; import diskCacheV111.vehicles.ProtocolInfo; import org.dcache.vehicles.FileAttributes; /** * A PoolMonitor is the primary component for selecting pools. * * PoolSelectionUnit, CostModule and PartitionManager are collaborators of * PoolMonitor. PoolMonitor is however more than just a facade, as it provides * functionality not found in its collaborators. */ public interface PoolMonitor { PoolSelectionUnit getPoolSelectionUnit(); CostModule getCostModule(); PartitionManager getPartitionManager(); PoolSelector getPoolSelector( FileAttributes fileAttributes, ProtocolInfo protocolInfo, String linkGroup); Collection<PoolCostInfo> queryPoolsByLinkName(String linkName); FileLocality getFileLocality(FileAttributes attributes, String hostName); }