using System; namespace SKMC.Api.Process.Model { /// /// 线性流程引擎 /// public abstract class ProcessFlow { // 流程id public int Id { get; set; } // 是否空跑测试 public bool TestRunMode { get; set; } = false; // 是否已停止 public bool IsStopped { get; set; } // 是否已挂起 public bool IsSuspend { get; set; } // 每轮循环开始前执行 public Action OnPrepare { get; set; } /// /// 启动流程 /// public abstract void Start(); /// /// 停止流程 /// public abstract void Stop(); /// /// 复位流程 /// public abstract void Reset(); /// /// 暂停流程 /// public abstract void Pause(); /// /// 恢复流程 /// public abstract void Resume(); /// /// 获取流程步骤 /// /// 流程步骤Id /// public abstract ProcessStep Get(int processStepId); /// /// 注册流程步骤 /// /// 流程步骤 public abstract void Register(ProcessStep processStep); /// /// 设置流程的起始步骤 /// /// 流程步骤 public abstract void SetFirst(ProcessStep processStep); /// /// 设置流程的起始步骤 /// /// 流程步骤Id public abstract void SetFirst(int processStepId); /// /// 提交启动流程的第一个步骤、如果设置了初始步骤SetFirst则从该步骤开始 /// public abstract void PostFirst(); /// /// 提交流程步骤(自动模式的下一个) /// public abstract void PostAutoNext(); /// /// 提交流程步骤(手动模式指定) /// /// 流程步骤 public abstract void PostManual(ProcessStep processStep); /// /// 直接调用一个流程步骤的Actions(自动模式的下一个) /// public abstract void CallAutoNext(); /// /// 直接调用一个流程步骤的Actions(手动模式指定) /// /// 流程步骤 public abstract void CallManual(ProcessStep processStep); } }