using Serein.Library; using Serein.Library.Utils; using System; using System.Collections.Generic; using System.Threading.Tasks; namespace Serein.Library.Api { /// /// 流程上下文,包含运行环境接口,可以通过注册环境事件或调用环境接口,实现在流程运行时更改流程行为。 /// public interface IDynamicContext { /// /// 运行环境,包含IOC容器。 /// IFlowEnvironment Env { get; } /// /// 是否正在运行 /// RunState RunState { get; } /// /// 用来在当前流程上下文间传递数据 /// Dictionary ContextShareData { get; } /// /// 下一个要执行的节点类别 /// ConnectionInvokeType NextOrientation { get; set; } /// /// 运行时异常信息 /// Exception ExceptionOfRuning { get; set; } /// /// 设置节点的运行时上一节点,用以多线程中隔开不同流程的数据 /// /// 当前节点 /// 运行时上一节点 void SetPreviousNode(NodeModelBase currentNodeModel, NodeModelBase PreviousNode); /// /// 获取当前节点的运行时上一节点,用以流程中获取数据 /// /// /// NodeModelBase GetPreviousNode(NodeModelBase currentNodeModel); /// /// 获取节点的数据(当前节点需要获取上一节点数据时,需要从 运行时上一节点 的Guid 通过这个方法进行获取 /// /// /// object GetFlowData(string nodeGuid); /// /// 上一节点数据透传到下一节点 /// /// object TransmissionData(NodeModelBase nodeModel); /// /// 添加或更新当前节点的数据 /// /// /// void AddOrUpdate(string nodeGuid, object flowData); /// /// 用以提前结束当前上下文流程的运行 /// void Exit(); /*/// /// 定时循环触发 /// /// /// /// /// // Task CreateTimingTask(Action callback, int time = 100, int count = -1);*/ } }