/* * Copyright (C) 2007-2008 Glencoe Software, Inc. All rights reserved. * Use is subject to license terms supplied in LICENSE.txt */ package ome.api; import ome.conditions.InternalException; /** * Provides methods for obtaining information for server repository disk space * allocation. Could be used generically to obtain usage information for any * mount point, however, this interface is prepared for the API to provide * methods to obtain usage info for the server filesystem containing the image * uploads. For the OMERO server base this is /OMERO. For this implementation * it could be anything e.g. /Data1. * <p> * Methods that fail or cannot execute on the server will throw an * InternalException. This would not be normal and would indicate some server or * disk failure. * </p> * <p> * Copyright 2007 Glencoe Software Inc. All rights reserved. * Use is subject to license terms supplied in LICENSE.txt * </p> * * @author David L. Whitehurst      <a * href="mailto:david@glencoesoftware.com">david@glencoesoftware.com</a> * @version $Revision$ * @since 3.0 */ public interface IRepositoryInfo extends ServiceInterface { /** * This method returns the total space in bytes for this file system * including nested subdirectories. The Java 6 J2SE provides this * functionality now using similar methods in the class java.io.File. A * refactoring of related classes should be performed when the later SDK * is adopted. * * @return Total space used on this file system. * @throws ResourceError If there is a problem retrieving disk space used. */ public long getUsedSpaceInKilobytes(); /** * This method returns the free or available space on this file system * including nested subdirectories. The Java 6 J2SE provides this * functionality now using similar methods in the class java.io.File. A * refactoring of related classes should be performed when the later SDK * is adopted. * * @return Free space on this file system in KB. * @throws ResourceError If there is a problem retrieving disk space free. */ public long getFreeSpaceInKilobytes(); /** * This method returns a double of the used space divided by the free space. * This method will be called by a client to watch the repository * filesystem so that it doesn't exceed 95% full. * * @return Fraction of used/free. * @throws ResourceError If there is a problem calculating the usage * fraction. */ public double getUsageFraction(); /** * Checks that image data repository has not exceeded 95% disk space use * level. * @throws ResourceError If the repository usage has exceeded 95%. * @throws InternalException If there is a critical failure while sanity * checking the repository. */ public void sanityCheckRepository(); /** * Removes all files from the server that do not have an OriginalFile * complement in the database, all the Pixels that do not have a complement * in the database and all the Thumbnail's that do not have a complement in * the database. * @throws ResourceError If deletion fails. */ public void removeUnusedFiles(); }