package jalview.api; public interface AlignCalcManagerI { /** * tell manager that a worker is initialised and has started to run * @param worker */ void notifyStart(AlignCalcWorkerI worker); /** * check if a calculation of this type is already active * @param worker * @return */ boolean alreadyDoing(AlignCalcWorkerI worker); /** * tell manager that worker is now processing data * @param worker */ boolean notifyWorking(AlignCalcWorkerI worker); /** * notify manager that the worker has completed, and results may be ready to collect * @param worker */ void workerComplete(AlignCalcWorkerI worker); /** * indicate that a worker like this cannot run on the platform and shouldn't be started again * @param worker */ void workerCannotRun(AlignCalcWorkerI worker); /** * launch a new worker * @param worker */ void startWorker(AlignCalcWorkerI worker); /** * * @param worker * @return */ boolean isWorking(AlignCalcWorkerI worker); /** * if any worker thread is operational, return true! * @return */ boolean isWorking(); }