/**
* The contents of this file are subject to the license and copyright
* detailed in the LICENSE and NOTICE files at the root of the source
* tree and available online at
*
* http://www.dspace.org/license/
*/
package org.dspace.harvest.service;
import org.dspace.authorize.AuthorizeException;
import java.io.IOException;
import java.sql.SQLException;
/**
* Service interface class for the scheduling of harvesting tasks.
* The implementation of this class is responsible for all business logic calls for the harvesting tasks and is autowired by spring
*
* @author kevinvandevelde at atmire.com
*/
public interface HarvestSchedulingService {
/**
* Start harvest scheduler.
*
* @throws SQLException
* An exception that provides information on a database access error or other errors.
* @throws AuthorizeException
* Exception indicating the current user of the context does not have permission
* to perform a particular action.
*/
void startNewScheduler() throws SQLException, AuthorizeException;
/**
* Stop an active harvest scheduler.
*
* @throws SQLException
* An exception that provides information on a database access error or other errors.
* @throws AuthorizeException
* Exception indicating the current user of the context does not have permission
* to perform a particular action.
*/
void stopScheduler() throws SQLException, AuthorizeException;
/**
* Pause an active harvest scheduler.
*
* @throws SQLException
* An exception that provides information on a database access error or other errors.
* @throws AuthorizeException
* Exception indicating the current user of the context does not have permission
* to perform a particular action.
*/
void pauseScheduler() throws SQLException, AuthorizeException;
/**
* Resume a paused harvest scheduler.
*
* @throws SQLException
* An exception that provides information on a database access error or other errors.
* @throws AuthorizeException
* Exception indicating the current user of the context does not have permission
* to perform a particular action.
*/
void resumeScheduler() throws SQLException, AuthorizeException;
/**
*
*
* @throws IOException
* A general class of exceptions produced by failed or interrupted I/O operations.
* @throws SQLException
* An exception that provides information on a database access error or other errors.
* @throws AuthorizeException
* Exception indicating the current user of the context does not have permission
* to perform a particular action.
*/
void resetScheduler() throws SQLException, AuthorizeException, IOException;
}