| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- using System;
- namespace SKMC.Api.Process.Model
- {
- /// <summary>
- /// 线性流程引擎
- /// </summary>
- 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; }
- /// <summary>
- /// 启动流程
- /// </summary>
- public abstract void Start();
- /// <summary>
- /// 停止流程
- /// </summary>
- public abstract void Stop();
- /// <summary>
- /// 复位流程
- /// </summary>
- public abstract void Reset();
- /// <summary>
- /// 暂停流程
- /// </summary>
- public abstract void Pause();
- /// <summary>
- /// 恢复流程
- /// </summary>
- public abstract void Resume();
- /// <summary>
- /// 获取流程步骤
- /// </summary>
- /// <param name="processStepId">流程步骤Id</param>
- /// <returns></returns>
- public abstract ProcessStep Get(int processStepId);
- /// <summary>
- /// 注册流程步骤
- /// </summary>
- /// <param name="processStep">流程步骤</param>
- public abstract void Register(ProcessStep processStep);
- /// <summary>
- /// 设置流程的起始步骤
- /// </summary>
- /// <param name="processStep">流程步骤</param>
- public abstract void SetFirst(ProcessStep processStep);
- /// <summary>
- /// 设置流程的起始步骤
- /// </summary>
- /// <param name="processStepId">流程步骤Id</param>
- public abstract void SetFirst(int processStepId);
- /// <summary>
- /// 提交启动流程的第一个步骤、如果设置了初始步骤SetFirst则从该步骤开始
- /// </summary>
- public abstract void PostFirst();
- /// <summary>
- /// 提交流程步骤(自动模式的下一个)
- /// </summary>
- public abstract void PostAutoNext();
- /// <summary>
- /// 提交流程步骤(手动模式指定)
- /// </summary>
- /// <param name="processStep">流程步骤</param>
- public abstract void PostManual(ProcessStep processStep);
- /// <summary>
- /// 直接调用一个流程步骤的Actions(自动模式的下一个)
- /// </summary>
- public abstract void CallAutoNext();
- /// <summary>
- /// 直接调用一个流程步骤的Actions(手动模式指定)
- /// </summary>
- /// <param name="processStep">流程步骤</param>
- public abstract void CallManual(ProcessStep processStep);
- }
- }
|