package cd.casic.ci.process.engine.manager;

import cd.casic.ci.process.engine.runContext.BaseRunContext;

public interface RunContextManager {
    /**
     *  停止流水线运行-预留
     * */
    Boolean stopPipeline(String pipelineId);
    /**
     *  恢复流水线运行-预留
     * */
    Boolean notifyPipeline(String pipelineId);
    /**
     *  挂起流水线-预留 TODO 根据配置判断是否存入数据库，恢复执行再加载入内存
     * */
    Boolean suspendPipeline(String pipelineId);
    /**
     *  恢复子阶段运行-预留
     * */
    Boolean notifyStage(String pipelineId,String stageId);
    /**
     *  挂起子阶段-预留 TODO 根据配置判断是否存入数据库，恢复执行再加载入内存
     * */
    Boolean suspendStage(String pipelineId,String stageId);
    /**
     *  判断相应的context类型，放入注册Map中（自动维护父子context关系）
     * */
    void contextRegister(BaseRunContext context);
    BaseRunContext getContext(String key);

    public void toHistory(String pipelineId);
}
