1   package org.daisy.pipeline.tts.scheduler;
2   
3   /**
4    * Schedulable action interface, used by Scheduler implementation.
5    *
6    * <p>A schedulable action must be rescheduled if a RecoverableError is raised.</p>
7    */
8   public interface Schedulable {
9   	/**
10  	 * Execute the action
11  	 *
12  	 * @throws InterruptedException if the action thread is interrupted
13  	 * @throws RecoverableError if the error is recoverable, so that the action can be rescheduled
14  	 * @throws FatalError if the action cannot be rescheduled
15  	 */
16  	public void launch() throws InterruptedException, RecoverableError, FatalError;
17  }