diff options
Diffstat (limited to 'daemon/src/main/java/org/openslx/taskmanager/main/Taskmanager.java')
-rw-r--r-- | daemon/src/main/java/org/openslx/taskmanager/main/Taskmanager.java | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/daemon/src/main/java/org/openslx/taskmanager/main/Taskmanager.java b/daemon/src/main/java/org/openslx/taskmanager/main/Taskmanager.java index 69c190a..b4df03d 100644 --- a/daemon/src/main/java/org/openslx/taskmanager/main/Taskmanager.java +++ b/daemon/src/main/java/org/openslx/taskmanager/main/Taskmanager.java @@ -12,6 +12,7 @@ import java.util.concurrent.TimeUnit; import org.apache.log4j.Logger; import org.openslx.taskmanager.Global; import org.openslx.taskmanager.api.AbstractTask; +import org.openslx.taskmanager.api.CancellableTask; import org.openslx.taskmanager.api.FinishCallback; import org.openslx.taskmanager.api.TaskStatus; import org.openslx.taskmanager.util.ClassLoaderHack; @@ -131,6 +132,17 @@ public class Taskmanager implements FinishCallback, Runnable task.release(); } + public TaskStatus cancelTask( String taskId ) + { + final AbstractTask task = instances.get( taskId ); + if ( task == null ) + return TaskStatus.ts_noSuchInstance; + if ( !(task instanceof CancellableTask) ) + return TaskStatus.ts_notCancellable; + ( (CancellableTask)task ).cancel(); + return task.getStatus(); + } + /** * Wakes up the Taskmanager's mainloop so it will check if any of the current task instances * is waiting for execution. |