package org.dcache.pool.migration; import com.google.common.collect.ImmutableList; import diskCacheV111.vehicles.PoolManagerPoolInformation; /** * A list of pools. * * Each pool is described by a PoolManagerPoolInformation * instance. The list can be refreshed. */ public interface RefreshablePoolList { /** * Whether information about pools is available. Since information * may be fetched asynchronously after a refresh it may be * unavailable at first. */ boolean isValid(); /** * Returns the names of offline pools in the list. */ ImmutableList<String> getOfflinePools(); /** * Returns information about online pools in the list. */ ImmutableList<PoolManagerPoolInformation> getPools(); /** * Initiates a refresh. The exact semantics of refresh is * implementation dependant, but the operation may or may not * block, and will typically involve fetching the list from * another component (e.g. fetching the list of pools in a pool * group from the PoolManager). */ void refresh(); }