X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=runtime%2Forg.argeo.slc.specs%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fslc%2Fexecution%2FSlcAgent.java;h=c96d4a8840d622f46ec6e9e8ba551e95d7d7f0eb;hb=620072e20b5027f484f615410a0142d2f696d400;hp=9b8acb728a8bd08753662032f935ad799f9b1dcb;hpb=a75c0516aca20f9a8c8fdd32feee402257ff2b61;p=gpl%2Fargeo-slc.git diff --git a/runtime/org.argeo.slc.specs/src/main/java/org/argeo/slc/execution/SlcAgent.java b/runtime/org.argeo.slc.specs/src/main/java/org/argeo/slc/execution/SlcAgent.java index 9b8acb728..c96d4a884 100644 --- a/runtime/org.argeo.slc.specs/src/main/java/org/argeo/slc/execution/SlcAgent.java +++ b/runtime/org.argeo.slc.specs/src/main/java/org/argeo/slc/execution/SlcAgent.java @@ -15,10 +15,15 @@ */ package org.argeo.slc.execution; +import java.net.URI; import java.util.List; - -/** A local agent, able to run SLC Execution locally. */ +/** + * A local agent can run SLC processes. It is responsible for creating their + * threads and integrating them with various UIs. It typically wraps + * {@link ExecutionModulesManager} which is used to run flows synchronously at a + * lower level. + */ public interface SlcAgent { /** Agent unique identifier */ public String getAgentUuid(); @@ -26,12 +31,34 @@ public interface SlcAgent { /** Execute / take part to this process */ public void process(ExecutionProcess process); + /** + * Asynchronously processes the flows defined as URIs, or interpret a single + * UUID URN as a scheduled or template process. + * + * @return the UUID of the process launched. + */ + public String process(List uris); + /** Kills this process */ - public void kill(ExecutionProcess process); + public void kill(String processUuid); + + /** + * Wait for this process to finish. returns immediately if it does not + * exist. + * + * @param millis + * can be null + */ + public void waitFor(String processUuid, Long millis); + /** + * Describe all the flows provided by this execution module. Typically + * called in order to build a realized flow. + */ public ExecutionModuleDescriptor getExecutionModuleDescriptor( String moduleName, String version); + /** List all execution modules which can be processed by this agent. */ public List listExecutionModuleDescriptors(); /** @return true if still alive. */