2024-10-20 21:59:42 +08:00
|
|
|
|
|
2024-10-24 23:32:43 +08:00
|
|
|
|
|
2024-10-27 00:54:10 +08:00
|
|
|
|
using Serein.Library.FlowNode;
|
2024-10-20 21:59:42 +08:00
|
|
|
|
using Serein.Library.Utils;
|
2024-09-15 12:15:32 +08:00
|
|
|
|
using System;
|
|
|
|
|
|
using System.Collections.Generic;
|
2024-10-20 12:10:57 +08:00
|
|
|
|
using System.Threading;
|
2024-09-15 12:15:32 +08:00
|
|
|
|
using System.Threading.Tasks;
|
|
|
|
|
|
|
|
|
|
|
|
namespace Serein.Library.Api
|
|
|
|
|
|
{
|
2024-09-16 21:38:34 +08:00
|
|
|
|
#region 环境委托
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 流程运行完成
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="eventArgs"></param>
|
|
|
|
|
|
public delegate void FlowRunCompleteHandler(FlowEventArgs eventArgs);
|
2024-09-15 12:15:32 +08:00
|
|
|
|
|
2024-09-16 21:38:34 +08:00
|
|
|
|
/// <summary>
|
2024-09-17 14:20:27 +08:00
|
|
|
|
/// 项目加载完成
|
2024-09-16 21:38:34 +08:00
|
|
|
|
/// </summary>
|
2024-09-17 14:20:27 +08:00
|
|
|
|
public delegate void ProjectLoadedHandler(ProjectLoadedEventArgs eventArgs);
|
2024-09-15 12:15:32 +08:00
|
|
|
|
|
2024-12-12 20:31:50 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 项目准备保存
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="eventArgs"></param>
|
|
|
|
|
|
public delegate void ProjectSavingHandler(ProjectSavingEventArgs eventArgs);
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-09-16 21:38:34 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 加载项目文件时成功加载了DLL文件
|
|
|
|
|
|
/// </summary>
|
2024-09-30 02:45:49 +08:00
|
|
|
|
public delegate void LoadDllHandler(LoadDllEventArgs eventArgs);
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 移除了加载的dll
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="eventArgs"></param>
|
|
|
|
|
|
public delegate void RemoteDllHandler(RemoteDllEventArgs eventArgs);
|
2024-09-15 12:15:32 +08:00
|
|
|
|
|
2024-09-16 21:38:34 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 运行环境节点连接发生了改变
|
|
|
|
|
|
/// </summary>
|
2024-10-15 10:55:41 +08:00
|
|
|
|
/// <param name="eventArgs"></param>
|
2024-09-16 21:38:34 +08:00
|
|
|
|
public delegate void NodeConnectChangeHandler(NodeConnectChangeEventArgs eventArgs);
|
|
|
|
|
|
|
2025-03-22 18:14:48 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 环境中新增了一个画布
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="eventArgs"></param>
|
|
|
|
|
|
public delegate void CanvasCreateHandler(CanvasCreateEventArgs eventArgs);
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 环境中移除了一个画布
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="eventArgs"></param>
|
|
|
|
|
|
public delegate void CanvasRemoveHandler(CanvasRemoveEventArgs eventArgs);
|
|
|
|
|
|
|
2024-09-16 21:38:34 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 环境中加载了一个节点
|
|
|
|
|
|
/// </summary>
|
2024-10-15 10:55:41 +08:00
|
|
|
|
/// <param name="eventArgs"></param>
|
2024-09-16 21:38:34 +08:00
|
|
|
|
public delegate void NodeCreateHandler(NodeCreateEventArgs eventArgs);
|
2024-09-15 12:15:32 +08:00
|
|
|
|
|
2025-03-22 18:14:48 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 环境中移除了一个节点
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="eventArgs"></param>
|
|
|
|
|
|
|
|
|
|
|
|
public delegate void NodeRemoveHandler(NodeRemoveEventArgs eventArgs);
|
|
|
|
|
|
|
2024-12-24 22:23:53 +08:00
|
|
|
|
/// <summary>
|
2024-12-26 00:26:50 +08:00
|
|
|
|
/// 节点放置事件
|
2024-12-24 22:23:53 +08:00
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="eventArgs"></param>
|
2024-12-26 00:26:50 +08:00
|
|
|
|
public delegate void NodePlaceHandler(NodePlaceEventArgs eventArgs);
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 节点取出事件
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="eventArgs"></param>
|
|
|
|
|
|
public delegate void NodeTakeOutHandler(NodeTakeOutEventArgs eventArgs);
|
2024-12-24 22:23:53 +08:00
|
|
|
|
|
2024-09-16 21:38:34 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 环境中流程起始节点发生了改变
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="eventArgs"></param>
|
2024-09-22 14:10:13 +08:00
|
|
|
|
public delegate void StartNodeChangeHandler(StartNodeChangeEventArgs eventArgs);
|
2024-09-24 22:39:43 +08:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 被监视的对象改变事件
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="eventArgs"></param>
|
|
|
|
|
|
public delegate void MonitorObjectChangeHandler(MonitorObjectEventArgs eventArgs);
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 节点中断状态改变事件(开启了中断/取消了中断)
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="eventArgs"></param>
|
|
|
|
|
|
public delegate void NodeInterruptStateChangeHandler(NodeInterruptStateChangeEventArgs eventArgs);
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 节点触发中断事件
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="eventArgs"></param>
|
|
|
|
|
|
public delegate void ExpInterruptTriggerHandler(InterruptTriggerEventArgs eventArgs);
|
|
|
|
|
|
|
2024-10-15 10:55:41 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// IOC容器发生变化
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public delegate void IOCMembersChangedHandler(IOCMembersChangedEventArgs eventArgs);
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 节点需要定位
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="eventArgs"></param>
|
|
|
|
|
|
public delegate void NodeLocatedHandler(NodeLocatedEventArgs eventArgs);
|
2024-09-24 22:39:43 +08:00
|
|
|
|
|
2024-10-15 21:56:09 +08:00
|
|
|
|
|
2024-10-20 12:10:57 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 远程环境内容输出
|
|
|
|
|
|
/// </summary>
|
2024-11-08 17:30:51 +08:00
|
|
|
|
/// <param name="type">输出的日志类别</param>
|
2024-10-20 12:10:57 +08:00
|
|
|
|
/// <param name="value">输出的文本信息</param>
|
2024-11-08 17:30:51 +08:00
|
|
|
|
public delegate void EnvOutHandler(InfoType type, string value);
|
2024-10-20 12:10:57 +08:00
|
|
|
|
|
|
|
|
|
|
|
2024-09-16 21:38:34 +08:00
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
#region 环境事件签名
|
2024-09-15 12:15:32 +08:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
2024-09-16 21:38:34 +08:00
|
|
|
|
/// 流程事件签名基类
|
2024-09-15 12:15:32 +08:00
|
|
|
|
/// </summary>
|
2024-09-16 21:38:34 +08:00
|
|
|
|
public class FlowEventArgs : EventArgs
|
|
|
|
|
|
{
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 是否完成
|
|
|
|
|
|
/// </summary>
|
2025-05-26 23:55:23 +08:00
|
|
|
|
public bool IsSucceed { get;} = true;
|
2024-09-16 21:38:34 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 错误提示
|
|
|
|
|
|
/// </summary>
|
2025-05-26 23:55:23 +08:00
|
|
|
|
public string ErrorTips { get;} = string.Empty;
|
2024-09-16 21:38:34 +08:00
|
|
|
|
}
|
2024-09-17 14:20:27 +08:00
|
|
|
|
|
2025-03-22 18:14:48 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 项目加载完成
|
|
|
|
|
|
/// </summary>
|
2024-09-17 14:20:27 +08:00
|
|
|
|
public class ProjectLoadedEventArgs : FlowEventArgs
|
2024-09-15 12:15:32 +08:00
|
|
|
|
{
|
2025-07-30 21:15:07 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 项目加载完成事件参数
|
|
|
|
|
|
/// </summary>
|
2024-09-17 14:20:27 +08:00
|
|
|
|
public ProjectLoadedEventArgs()
|
2024-09-15 12:15:32 +08:00
|
|
|
|
{
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2024-12-12 20:31:50 +08:00
|
|
|
|
|
2025-03-22 18:14:48 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 项目保存
|
|
|
|
|
|
/// </summary>
|
2024-12-12 20:31:50 +08:00
|
|
|
|
public class ProjectSavingEventArgs : FlowEventArgs
|
|
|
|
|
|
{
|
2025-07-30 21:15:07 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 项目保存事件参数
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="projectData"></param>
|
2025-05-26 23:55:23 +08:00
|
|
|
|
public ProjectSavingEventArgs(SereinProjectData projectData)
|
2024-12-12 20:31:50 +08:00
|
|
|
|
{
|
2025-05-26 23:55:23 +08:00
|
|
|
|
ProjectData = projectData;
|
2024-12-12 20:31:50 +08:00
|
|
|
|
}
|
2025-05-26 23:55:23 +08:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 项目数据
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public SereinProjectData ProjectData { get; }
|
2024-12-12 20:31:50 +08:00
|
|
|
|
}
|
2024-09-15 12:15:32 +08:00
|
|
|
|
|
2025-03-22 18:14:48 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 加载了DLL外部依赖
|
|
|
|
|
|
/// </summary>
|
2024-09-30 02:45:49 +08:00
|
|
|
|
public class LoadDllEventArgs : FlowEventArgs
|
2024-09-15 12:15:32 +08:00
|
|
|
|
{
|
2025-07-30 21:15:07 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 加载了DLL外部依赖事件参数
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="nodeLibraryInfo"></param>
|
2025-07-28 12:16:29 +08:00
|
|
|
|
public LoadDllEventArgs(FlowLibraryInfo nodeLibraryInfo)
|
2024-09-15 12:15:32 +08:00
|
|
|
|
{
|
2024-11-03 18:28:16 +08:00
|
|
|
|
this.NodeLibraryInfo = nodeLibraryInfo;
|
2024-09-15 12:15:32 +08:00
|
|
|
|
}
|
2024-09-16 21:38:34 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 已加载了的程序集
|
|
|
|
|
|
/// </summary>
|
2025-07-28 12:16:29 +08:00
|
|
|
|
public FlowLibraryInfo NodeLibraryInfo { get;}
|
2024-09-15 12:15:32 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
2025-03-22 18:14:48 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 移除了DLL外部依赖
|
|
|
|
|
|
/// </summary>
|
2024-09-30 02:45:49 +08:00
|
|
|
|
public class RemoteDllEventArgs : FlowEventArgs
|
|
|
|
|
|
{
|
2025-07-30 21:15:07 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 移除了DLL外部依赖事件参数
|
|
|
|
|
|
/// </summary>
|
2024-09-30 02:45:49 +08:00
|
|
|
|
public RemoteDllEventArgs()
|
|
|
|
|
|
{
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2025-03-22 18:14:48 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 改变节点连接关系
|
|
|
|
|
|
/// </summary>
|
2024-09-16 21:38:34 +08:00
|
|
|
|
|
2024-09-15 12:15:32 +08:00
|
|
|
|
public class NodeConnectChangeEventArgs : FlowEventArgs
|
|
|
|
|
|
{
|
2024-09-16 21:38:34 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 连接关系改变类型
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public enum ConnectChangeType
|
2024-09-15 12:15:32 +08:00
|
|
|
|
{
|
2024-09-16 21:38:34 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 创建
|
|
|
|
|
|
/// </summary>
|
2024-09-15 12:15:32 +08:00
|
|
|
|
Create,
|
2024-09-16 21:38:34 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 移除
|
|
|
|
|
|
/// </summary>
|
2024-12-26 16:42:05 +08:00
|
|
|
|
Remove,
|
2024-09-15 12:15:32 +08:00
|
|
|
|
}
|
2024-10-27 00:54:10 +08:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 更改方法调用关系
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="fromNodeGuid"></param>
|
|
|
|
|
|
/// <param name="toNodeGuid"></param>
|
|
|
|
|
|
/// <param name="junctionOfConnectionType"></param>
|
|
|
|
|
|
/// <param name="connectionInvokeType"></param>
|
|
|
|
|
|
/// <param name="changeType"></param>
|
2025-03-22 18:14:48 +08:00
|
|
|
|
public NodeConnectChangeEventArgs(string canvasGuid,
|
|
|
|
|
|
string fromNodeGuid,
|
2024-10-24 23:32:43 +08:00
|
|
|
|
string toNodeGuid,
|
|
|
|
|
|
JunctionOfConnectionType junctionOfConnectionType, // 指示需要创建什么类型的连接线
|
|
|
|
|
|
ConnectionInvokeType connectionInvokeType, // 节点调用的方法类型(true/false/error/cancel )
|
|
|
|
|
|
ConnectChangeType changeType) // 需要创建连接线还是删除连接线
|
|
|
|
|
|
{
|
2025-03-22 18:14:48 +08:00
|
|
|
|
this.CanvasGuid = canvasGuid;
|
2024-10-24 23:32:43 +08:00
|
|
|
|
this.FromNodeGuid = fromNodeGuid;
|
|
|
|
|
|
this.ToNodeGuid = toNodeGuid;
|
|
|
|
|
|
this.ConnectionInvokeType = connectionInvokeType;
|
|
|
|
|
|
this.ChangeType = changeType;
|
|
|
|
|
|
this.JunctionOfConnectionType = junctionOfConnectionType;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2024-10-27 00:54:10 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 更改参数传递关系
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="fromNodeGuid"></param>
|
|
|
|
|
|
/// <param name="toNodeGuid"></param>
|
|
|
|
|
|
/// <param name="junctionOfConnectionType"></param>
|
|
|
|
|
|
/// <param name="argIndex"></param>
|
|
|
|
|
|
/// <param name="connectionArgSourceType"></param>
|
|
|
|
|
|
/// <param name="changeType"></param>
|
2025-03-22 18:14:48 +08:00
|
|
|
|
public NodeConnectChangeEventArgs(string canvasGuid,
|
|
|
|
|
|
string fromNodeGuid,
|
2024-10-24 23:32:43 +08:00
|
|
|
|
string toNodeGuid,
|
|
|
|
|
|
int argIndex,
|
2025-06-22 21:53:37 +08:00
|
|
|
|
JunctionOfConnectionType junctionOfConnectionType, // 指示需要创建什么类型的连接线
|
2024-10-24 23:32:43 +08:00
|
|
|
|
ConnectionArgSourceType connectionArgSourceType, // 节点对应的方法入参所需参数来源
|
|
|
|
|
|
ConnectChangeType changeType) // 需要创建连接线还是删除连接线
|
2024-09-15 12:15:32 +08:00
|
|
|
|
{
|
2025-03-22 18:14:48 +08:00
|
|
|
|
CanvasGuid = canvasGuid;
|
2024-09-15 12:15:32 +08:00
|
|
|
|
this.FromNodeGuid = fromNodeGuid;
|
|
|
|
|
|
this.ToNodeGuid = toNodeGuid;
|
|
|
|
|
|
this.ChangeType = changeType;
|
2024-10-24 23:32:43 +08:00
|
|
|
|
this.ArgIndex = argIndex;
|
|
|
|
|
|
this.ConnectionArgSourceType = connectionArgSourceType;
|
|
|
|
|
|
this.JunctionOfConnectionType = junctionOfConnectionType;
|
|
|
|
|
|
|
2024-09-15 12:15:32 +08:00
|
|
|
|
}
|
2025-03-22 18:14:48 +08:00
|
|
|
|
|
2025-07-30 21:15:07 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 连接关系所在的画布Guid
|
|
|
|
|
|
/// </summary>
|
2025-03-22 18:14:48 +08:00
|
|
|
|
public string CanvasGuid { get; }
|
|
|
|
|
|
|
2024-09-16 21:38:34 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 连接关系中始节点的Guid
|
|
|
|
|
|
/// </summary>
|
2025-05-26 23:55:23 +08:00
|
|
|
|
public string FromNodeGuid { get;}
|
2024-09-16 21:38:34 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 连接关系中目标节点的Guid
|
|
|
|
|
|
/// </summary>
|
2025-05-26 23:55:23 +08:00
|
|
|
|
public string ToNodeGuid { get;}
|
2024-09-16 21:38:34 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 连接类型
|
|
|
|
|
|
/// </summary>
|
2025-07-09 21:49:26 +08:00
|
|
|
|
public ConnectionInvokeType ConnectionInvokeType { get; } = ConnectionInvokeType.None;
|
2024-09-16 21:38:34 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 表示此次需要在两个节点之间创建连接关系,或是移除连接关系
|
|
|
|
|
|
/// </summary>
|
2025-07-09 21:49:26 +08:00
|
|
|
|
public ConnectChangeType ChangeType { get;}
|
2024-10-24 23:32:43 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 指示需要创建什么类型的连接线
|
|
|
|
|
|
/// </summary>
|
2025-06-22 21:53:37 +08:00
|
|
|
|
public JunctionOfConnectionType JunctionOfConnectionType { get; } = JunctionOfConnectionType.None;
|
2024-10-24 23:32:43 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 节点对应的方法入参所需参数来源
|
|
|
|
|
|
/// </summary>
|
2025-07-09 21:49:26 +08:00
|
|
|
|
public ConnectionArgSourceType ConnectionArgSourceType { get;}
|
2024-10-27 00:54:10 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 第几个参数
|
|
|
|
|
|
/// </summary>
|
2025-06-22 21:53:37 +08:00
|
|
|
|
public int ArgIndex { get; } = -1;
|
2024-10-24 23:32:43 +08:00
|
|
|
|
|
|
|
|
|
|
|
2024-09-15 12:15:32 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
2025-03-22 18:14:48 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 添加了一个画布
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public class CanvasCreateEventArgs : FlowEventArgs
|
|
|
|
|
|
{
|
2025-07-30 21:15:07 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 画布添加事件参数
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="model"></param>
|
2025-05-26 23:55:23 +08:00
|
|
|
|
public CanvasCreateEventArgs(FlowCanvasDetails model)
|
2025-03-22 18:14:48 +08:00
|
|
|
|
{
|
2025-03-24 15:44:34 +08:00
|
|
|
|
Model = model;
|
2025-03-22 18:14:48 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
2025-07-30 21:15:07 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 画布
|
|
|
|
|
|
/// </summary>
|
2025-05-26 23:55:23 +08:00
|
|
|
|
public FlowCanvasDetails Model { get; }
|
2025-03-22 18:14:48 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 移除了一个画布
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public class CanvasRemoveEventArgs : FlowEventArgs
|
|
|
|
|
|
{
|
2025-07-30 21:15:07 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 画布移除事件参数
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="canvasGuid"></param>
|
2025-03-22 18:14:48 +08:00
|
|
|
|
public CanvasRemoveEventArgs(string canvasGuid)
|
|
|
|
|
|
{
|
|
|
|
|
|
CanvasGuid = canvasGuid;
|
|
|
|
|
|
}
|
2024-09-16 21:38:34 +08:00
|
|
|
|
|
2025-07-30 21:15:07 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 所处画布Guid
|
|
|
|
|
|
/// </summary>
|
2025-03-22 18:14:48 +08:00
|
|
|
|
public string CanvasGuid { get; }
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 添加了节点
|
|
|
|
|
|
/// </summary>
|
2024-09-15 12:15:32 +08:00
|
|
|
|
public class NodeCreateEventArgs : FlowEventArgs
|
|
|
|
|
|
{
|
2024-12-12 20:31:50 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 节点添加事件参数
|
|
|
|
|
|
/// </summary>
|
2025-05-26 23:55:23 +08:00
|
|
|
|
/// <param name="canvasGuid">画布</param>
|
2024-12-12 20:31:50 +08:00
|
|
|
|
/// <param name="nodeModel">节点对象</param>
|
|
|
|
|
|
/// <param name="position">位置</param>
|
2025-05-31 12:15:01 +08:00
|
|
|
|
public NodeCreateEventArgs(string canvasGuid, IFlowNode nodeModel, PositionOfUI position)
|
2024-09-17 14:20:27 +08:00
|
|
|
|
{
|
2025-03-22 18:14:48 +08:00
|
|
|
|
CanvasGuid = canvasGuid;
|
2024-09-17 14:20:27 +08:00
|
|
|
|
this.NodeModel = nodeModel;
|
|
|
|
|
|
this.Position = position;
|
|
|
|
|
|
}
|
2025-05-26 23:55:23 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 所处画布Guid
|
|
|
|
|
|
/// </summary>
|
2025-03-22 18:14:48 +08:00
|
|
|
|
public string CanvasGuid { get; }
|
|
|
|
|
|
|
2024-09-16 21:38:34 +08:00
|
|
|
|
/// <summary>
|
2024-12-26 16:42:05 +08:00
|
|
|
|
/// 节点Model对象
|
2024-09-16 21:38:34 +08:00
|
|
|
|
/// </summary>
|
2025-05-31 12:15:01 +08:00
|
|
|
|
public IFlowNode NodeModel { get; private set; }
|
2025-05-26 23:55:23 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 在UI上的位置
|
|
|
|
|
|
/// </summary>
|
2024-10-20 12:10:57 +08:00
|
|
|
|
public PositionOfUI Position { get; private set; }
|
2024-09-15 12:15:32 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
2025-03-22 18:14:48 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 移除了节点的事件
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public class NodeRemoveEventArgs : FlowEventArgs
|
|
|
|
|
|
{
|
2025-07-30 21:15:07 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 被移除节点事件参数
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="canvasGuid"></param>
|
|
|
|
|
|
/// <param name="nodeGuid"></param>
|
2025-03-22 18:14:48 +08:00
|
|
|
|
public NodeRemoveEventArgs(string canvasGuid, string nodeGuid)
|
|
|
|
|
|
{
|
|
|
|
|
|
CanvasGuid = canvasGuid;
|
|
|
|
|
|
this.NodeGuid = nodeGuid;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2025-07-30 21:15:07 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 被移除节点所在的画布Guid
|
|
|
|
|
|
/// </summary>
|
2025-03-22 18:14:48 +08:00
|
|
|
|
public string CanvasGuid { get; }
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 被移除节点的Guid
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public string NodeGuid { get; private set; }
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2024-12-24 22:23:53 +08:00
|
|
|
|
/// <summary>
|
2024-12-26 00:26:50 +08:00
|
|
|
|
/// 节点放置事件参数
|
2024-12-24 22:23:53 +08:00
|
|
|
|
/// </summary>
|
2024-12-26 00:26:50 +08:00
|
|
|
|
public class NodePlaceEventArgs : FlowEventArgs
|
2024-12-24 22:23:53 +08:00
|
|
|
|
{
|
2025-07-30 21:15:07 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 节点放置事件参数
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="canvasGuid"></param>
|
|
|
|
|
|
/// <param name="nodeGuid"></param>
|
|
|
|
|
|
/// <param name="containerNodeGuid"></param>
|
2025-03-22 18:14:48 +08:00
|
|
|
|
public NodePlaceEventArgs(string canvasGuid, string nodeGuid, string containerNodeGuid)
|
2024-12-24 22:23:53 +08:00
|
|
|
|
{
|
2025-03-22 18:14:48 +08:00
|
|
|
|
CanvasGuid = canvasGuid;
|
2024-12-26 00:26:50 +08:00
|
|
|
|
NodeGuid = nodeGuid;
|
2024-12-24 22:23:53 +08:00
|
|
|
|
ContainerNodeGuid = containerNodeGuid;
|
|
|
|
|
|
}
|
2025-03-22 18:14:48 +08:00
|
|
|
|
|
2025-07-30 21:15:07 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 画布Guid
|
|
|
|
|
|
/// </summary>
|
2025-03-22 18:14:48 +08:00
|
|
|
|
public string CanvasGuid { get; }
|
|
|
|
|
|
|
2024-12-24 22:23:53 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 子节点,该数据为此次时间的主节点
|
|
|
|
|
|
/// </summary>
|
2024-12-26 00:26:50 +08:00
|
|
|
|
public string NodeGuid { get; private set; }
|
2024-12-24 22:23:53 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 父节点
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public string ContainerNodeGuid { get; private set; }
|
2024-12-26 00:26:50 +08:00
|
|
|
|
}
|
2024-12-24 22:23:53 +08:00
|
|
|
|
|
2024-12-26 00:26:50 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 节点取出事件参数
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public class NodeTakeOutEventArgs : FlowEventArgs
|
|
|
|
|
|
{
|
2025-07-30 21:15:07 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 节点取出事件参数
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="canvasGuid"></param>
|
|
|
|
|
|
/// <param name="containerNodeGuid"></param>
|
|
|
|
|
|
/// <param name="nodeGuid"></param>
|
2025-07-28 17:38:51 +08:00
|
|
|
|
public NodeTakeOutEventArgs(string canvasGuid, string containerNodeGuid, string nodeGuid)
|
2024-12-26 00:26:50 +08:00
|
|
|
|
{
|
2025-03-22 18:14:48 +08:00
|
|
|
|
CanvasGuid = canvasGuid;
|
2024-12-26 00:26:50 +08:00
|
|
|
|
NodeGuid = nodeGuid;
|
2025-07-28 17:38:51 +08:00
|
|
|
|
ContainerNodeGuid = containerNodeGuid;
|
2024-12-26 00:26:50 +08:00
|
|
|
|
}
|
2025-03-22 18:14:48 +08:00
|
|
|
|
|
2025-07-30 21:15:07 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 所在画布Guid
|
|
|
|
|
|
/// </summary>
|
2025-03-22 18:14:48 +08:00
|
|
|
|
public string CanvasGuid { get; }
|
|
|
|
|
|
|
2024-12-24 22:23:53 +08:00
|
|
|
|
/// <summary>
|
2024-12-26 00:26:50 +08:00
|
|
|
|
/// 需要取出的节点Guid
|
2024-12-24 22:23:53 +08:00
|
|
|
|
/// </summary>
|
2024-12-26 00:26:50 +08:00
|
|
|
|
public string NodeGuid { get; private set; }
|
2025-07-28 17:38:51 +08:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 容器节点Guid
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public string ContainerNodeGuid { get; private set; }
|
2024-12-24 22:23:53 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
2024-12-26 00:26:50 +08:00
|
|
|
|
|
2024-09-15 12:15:32 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-07-30 21:15:07 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 起始节点发生了变化
|
|
|
|
|
|
/// </summary>
|
2024-09-16 21:38:34 +08:00
|
|
|
|
public class StartNodeChangeEventArgs : FlowEventArgs
|
2024-09-15 12:15:32 +08:00
|
|
|
|
{
|
2025-07-30 21:15:07 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 起始节点发生了变化事件参数
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="canvasGuid"></param>
|
|
|
|
|
|
/// <param name="oldNodeGuid"></param>
|
|
|
|
|
|
/// <param name="newNodeGuid"></param>
|
2025-03-22 18:14:48 +08:00
|
|
|
|
public StartNodeChangeEventArgs(string canvasGuid, string oldNodeGuid, string newNodeGuid)
|
2024-09-15 12:15:32 +08:00
|
|
|
|
{
|
2025-03-22 18:14:48 +08:00
|
|
|
|
CanvasGuid = canvasGuid;
|
2024-09-15 12:15:32 +08:00
|
|
|
|
this.OldNodeGuid = oldNodeGuid;
|
|
|
|
|
|
this.NewNodeGuid = newNodeGuid; ;
|
|
|
|
|
|
}
|
2025-03-22 18:14:48 +08:00
|
|
|
|
|
2025-07-30 21:15:07 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 所在画布Guid
|
|
|
|
|
|
/// </summary>
|
2025-03-22 18:14:48 +08:00
|
|
|
|
public string CanvasGuid { get; }
|
|
|
|
|
|
|
2024-09-16 21:38:34 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 原来的起始节点Guid
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public string OldNodeGuid { get; private set; }
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 新的起始节点Guid
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public string NewNodeGuid { get; private set; }
|
2024-09-17 14:20:27 +08:00
|
|
|
|
}
|
2024-09-15 12:15:32 +08:00
|
|
|
|
|
2024-09-22 14:10:13 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 监视的节点数据发生变化
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public class MonitorObjectEventArgs : FlowEventArgs
|
|
|
|
|
|
{
|
2024-10-15 10:55:41 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 变化的数据类别
|
|
|
|
|
|
/// </summary>
|
2024-09-24 22:39:43 +08:00
|
|
|
|
public enum ObjSourceType
|
|
|
|
|
|
{
|
2024-10-15 10:55:41 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 流程节点的数据
|
|
|
|
|
|
/// </summary>
|
2024-09-24 22:39:43 +08:00
|
|
|
|
NodeFlowData,
|
2024-10-15 10:55:41 +08:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// IOC容器对象
|
|
|
|
|
|
/// </summary>
|
2024-09-24 22:39:43 +08:00
|
|
|
|
IOCObj,
|
|
|
|
|
|
}
|
2024-10-15 10:55:41 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 在某个节点运行时,监听的数据发生了改变
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="nodeGuid"></param>
|
|
|
|
|
|
/// <param name="monitorData"></param>
|
|
|
|
|
|
/// <param name="objSourceType"></param>
|
2024-09-24 22:39:43 +08:00
|
|
|
|
public MonitorObjectEventArgs(string nodeGuid, object monitorData, ObjSourceType objSourceType)
|
2024-09-22 14:10:13 +08:00
|
|
|
|
{
|
|
|
|
|
|
NodeGuid = nodeGuid;
|
2024-09-24 22:39:43 +08:00
|
|
|
|
NewData = monitorData;
|
|
|
|
|
|
ObjSource = objSourceType;
|
2024-09-22 14:10:13 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 中断的节点Guid
|
|
|
|
|
|
/// </summary>
|
2025-05-26 23:55:23 +08:00
|
|
|
|
public string NodeGuid { get;}
|
2024-10-15 10:55:41 +08:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 监听对象类别
|
|
|
|
|
|
/// </summary>
|
2025-05-26 23:55:23 +08:00
|
|
|
|
public ObjSourceType ObjSource { get;}
|
2024-09-22 14:10:13 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 新的数据
|
|
|
|
|
|
/// </summary>
|
2025-05-26 23:55:23 +08:00
|
|
|
|
public object NewData { get;}
|
2024-09-22 14:10:13 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 节点中断状态改变事件参数
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public class NodeInterruptStateChangeEventArgs : FlowEventArgs
|
|
|
|
|
|
{
|
2025-07-30 21:15:07 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 节点中断状态改变事件参数
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="nodeGuid"></param>
|
|
|
|
|
|
/// <param name="isInterrupt"></param>
|
2024-10-27 00:54:10 +08:00
|
|
|
|
public NodeInterruptStateChangeEventArgs(string nodeGuid,bool isInterrupt)
|
2024-09-22 14:10:13 +08:00
|
|
|
|
{
|
|
|
|
|
|
NodeGuid = nodeGuid;
|
2024-10-27 00:54:10 +08:00
|
|
|
|
// Class = @class;
|
|
|
|
|
|
IsInterrupt = isInterrupt;
|
2024-09-22 14:10:13 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 中断的节点Guid
|
|
|
|
|
|
/// </summary>
|
2025-05-26 23:55:23 +08:00
|
|
|
|
public string NodeGuid { get;}
|
2025-07-30 21:15:07 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 是否中断
|
|
|
|
|
|
/// </summary>
|
2025-05-26 23:55:23 +08:00
|
|
|
|
public bool IsInterrupt { get;}
|
2024-09-22 14:10:13 +08:00
|
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 节点触发了中断事件参数
|
|
|
|
|
|
/// </summary>
|
2024-09-22 17:37:32 +08:00
|
|
|
|
public class InterruptTriggerEventArgs : FlowEventArgs
|
2024-09-22 14:10:13 +08:00
|
|
|
|
{
|
2025-07-30 21:15:07 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 中断触发类型
|
|
|
|
|
|
/// </summary>
|
2024-09-22 17:37:32 +08:00
|
|
|
|
public enum InterruptTriggerType
|
2024-09-22 14:10:13 +08:00
|
|
|
|
{
|
2024-09-22 17:37:32 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 主动监视中断
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
Monitor,
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 表达式中断
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
Exp,
|
2024-09-24 22:39:43 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 对象监视中断
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
Obj,
|
2024-09-22 17:37:32 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
2025-07-30 21:15:07 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 中断触发事件参数
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="nodeGuid"></param>
|
|
|
|
|
|
/// <param name="expression"></param>
|
|
|
|
|
|
/// <param name="type"></param>
|
2024-09-22 17:37:32 +08:00
|
|
|
|
public InterruptTriggerEventArgs(string nodeGuid, string expression, InterruptTriggerType type)
|
|
|
|
|
|
{
|
|
|
|
|
|
this.NodeGuid = nodeGuid;
|
|
|
|
|
|
this.Expression = expression;
|
|
|
|
|
|
this.Type = type;
|
2024-09-22 14:10:13 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 中断的节点Guid
|
|
|
|
|
|
/// </summary>
|
2025-05-26 23:55:23 +08:00
|
|
|
|
public string NodeGuid { get;}
|
2025-07-30 21:15:07 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 被触发的表达式
|
|
|
|
|
|
/// </summary>
|
2025-05-26 23:55:23 +08:00
|
|
|
|
public string Expression { get;}
|
2025-07-30 21:15:07 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 中断触发类型
|
|
|
|
|
|
/// </summary>
|
2025-05-26 23:55:23 +08:00
|
|
|
|
public InterruptTriggerType Type { get;}
|
2024-09-22 14:10:13 +08:00
|
|
|
|
}
|
2024-09-24 22:39:43 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 流程事件签名基类
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public class IOCMembersChangedEventArgs : FlowEventArgs
|
|
|
|
|
|
{
|
2025-07-30 21:15:07 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// IOC成员发生改变的事件类型
|
|
|
|
|
|
/// </summary>
|
2024-09-24 22:39:43 +08:00
|
|
|
|
public enum EventType
|
|
|
|
|
|
{
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 登记了类型
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
Registered,
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 构建了类型
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
Completeuild,
|
|
|
|
|
|
}
|
2025-07-30 21:15:07 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// IOC成员发生改变事件参数
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="key"></param>
|
|
|
|
|
|
/// <param name="instance"></param>
|
2024-09-26 21:00:17 +08:00
|
|
|
|
public IOCMembersChangedEventArgs(string key, object instance)
|
2024-09-24 22:39:43 +08:00
|
|
|
|
{
|
2024-09-26 21:00:17 +08:00
|
|
|
|
this.Key = key;
|
|
|
|
|
|
this.Instance = instance;
|
2024-09-24 22:39:43 +08:00
|
|
|
|
}
|
2025-07-30 21:15:07 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// IOC成员发生改变事件参数
|
|
|
|
|
|
/// </summary>
|
2024-09-26 21:00:17 +08:00
|
|
|
|
public string Key { get; private set; }
|
2025-07-30 21:15:07 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// IOC成员发生改变事件参数
|
|
|
|
|
|
/// </summary>
|
2024-09-26 21:00:17 +08:00
|
|
|
|
public object Instance { get; private set; }
|
2024-09-27 23:47:25 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
2024-10-15 21:56:09 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 节点需要定位
|
|
|
|
|
|
/// </summary>
|
2024-09-27 23:47:25 +08:00
|
|
|
|
public class NodeLocatedEventArgs : FlowEventArgs
|
|
|
|
|
|
{
|
2025-07-30 21:15:07 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 节点需要定位事件参数
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="nodeGuid"></param>
|
2024-09-27 23:47:25 +08:00
|
|
|
|
public NodeLocatedEventArgs(string nodeGuid)
|
|
|
|
|
|
{
|
|
|
|
|
|
NodeGuid = nodeGuid;
|
|
|
|
|
|
}
|
2025-07-30 21:15:07 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 节点需要定位事件参数
|
|
|
|
|
|
/// </summary>
|
2024-09-27 23:47:25 +08:00
|
|
|
|
public string NodeGuid { get; private set; }
|
2024-09-24 22:39:43 +08:00
|
|
|
|
}
|
2024-09-22 14:10:13 +08:00
|
|
|
|
|
2024-11-08 17:30:51 +08:00
|
|
|
|
|
2024-10-15 10:55:41 +08:00
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
2024-12-29 21:26:03 +08:00
|
|
|
|
/// 流程环境事件接口
|
2024-10-15 10:55:41 +08:00
|
|
|
|
/// </summary>
|
2024-12-29 21:26:03 +08:00
|
|
|
|
public interface IFlowEnvironmentEvent
|
2024-09-15 12:15:32 +08:00
|
|
|
|
{
|
2024-09-22 14:10:13 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 加载Dll
|
|
|
|
|
|
/// </summary>
|
2025-06-02 19:17:30 +08:00
|
|
|
|
event LoadDllHandler DllLoad;
|
2024-09-22 14:10:13 +08:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 项目加载完成
|
|
|
|
|
|
/// </summary>
|
2025-06-02 19:17:30 +08:00
|
|
|
|
event ProjectLoadedHandler ProjectLoaded;
|
2024-09-22 14:10:13 +08:00
|
|
|
|
|
2024-12-12 20:31:50 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 项目准备保存
|
|
|
|
|
|
/// </summary>
|
2025-06-02 19:17:30 +08:00
|
|
|
|
event ProjectSavingHandler ProjectSaving;
|
2024-12-12 20:31:50 +08:00
|
|
|
|
|
2024-09-22 14:10:13 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 节点连接属性改变事件
|
|
|
|
|
|
/// </summary>
|
2025-06-02 19:17:30 +08:00
|
|
|
|
event NodeConnectChangeHandler NodeConnectChanged;
|
2024-09-22 14:10:13 +08:00
|
|
|
|
|
2025-03-22 18:14:48 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 增加画布事件
|
|
|
|
|
|
/// </summary>
|
2025-06-02 19:17:30 +08:00
|
|
|
|
event CanvasCreateHandler CanvasCreated;
|
2025-03-22 18:14:48 +08:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 删除画布事件
|
|
|
|
|
|
/// </summary>
|
2025-06-02 19:17:30 +08:00
|
|
|
|
event CanvasRemoveHandler CanvasRemoved;
|
2025-03-22 18:14:48 +08:00
|
|
|
|
|
2024-09-22 14:10:13 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 节点创建事件
|
|
|
|
|
|
/// </summary>
|
2025-06-02 19:17:30 +08:00
|
|
|
|
event NodeCreateHandler NodeCreated;
|
2024-09-22 14:10:13 +08:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 移除节点事件
|
|
|
|
|
|
/// </summary>
|
2025-06-02 19:17:30 +08:00
|
|
|
|
event NodeRemoveHandler NodeRemoved;
|
2024-09-22 14:10:13 +08:00
|
|
|
|
|
2024-12-24 22:23:53 +08:00
|
|
|
|
/// <summary>
|
2024-12-26 00:26:50 +08:00
|
|
|
|
/// 节点放置事件
|
2024-12-24 22:23:53 +08:00
|
|
|
|
/// </summary>
|
2025-06-02 19:17:30 +08:00
|
|
|
|
event NodePlaceHandler NodePlace;
|
2024-12-26 00:26:50 +08:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 节点取出事件
|
|
|
|
|
|
/// </summary>
|
2025-06-02 19:17:30 +08:00
|
|
|
|
event NodeTakeOutHandler NodeTakeOut;
|
2024-12-24 22:23:53 +08:00
|
|
|
|
|
2024-09-22 14:10:13 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 起始节点变化事件
|
|
|
|
|
|
/// </summary>
|
2025-06-02 19:17:30 +08:00
|
|
|
|
event StartNodeChangeHandler StartNodeChanged;
|
2024-09-15 12:15:32 +08:00
|
|
|
|
|
2024-09-22 14:10:13 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 流程运行完成事件
|
|
|
|
|
|
/// </summary>
|
2025-06-02 19:17:30 +08:00
|
|
|
|
event FlowRunCompleteHandler FlowRunComplete;
|
2024-09-22 14:10:13 +08:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 被监视的对象改变事件
|
|
|
|
|
|
/// </summary>
|
2025-06-02 19:17:30 +08:00
|
|
|
|
event MonitorObjectChangeHandler MonitorObjectChanged;
|
2024-09-22 14:10:13 +08:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 节点中断状态变化事件
|
|
|
|
|
|
/// </summary>
|
2025-06-02 19:17:30 +08:00
|
|
|
|
event NodeInterruptStateChangeHandler NodeInterruptStateChanged;
|
2024-09-22 14:10:13 +08:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
2024-09-22 17:37:32 +08:00
|
|
|
|
/// 触发中断
|
2024-09-22 14:10:13 +08:00
|
|
|
|
/// </summary>
|
2025-06-02 19:17:30 +08:00
|
|
|
|
event ExpInterruptTriggerHandler InterruptTriggered;
|
2024-09-22 14:10:13 +08:00
|
|
|
|
|
2024-09-26 21:00:17 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// IOC容器发生改变
|
|
|
|
|
|
/// </summary>
|
2025-06-02 19:17:30 +08:00
|
|
|
|
event IOCMembersChangedHandler IOCMembersChanged;
|
2024-09-26 21:00:17 +08:00
|
|
|
|
|
2024-09-27 23:47:25 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 节点需要定位
|
|
|
|
|
|
/// </summary>
|
2025-06-02 19:17:30 +08:00
|
|
|
|
event NodeLocatedHandler NodeLocated;
|
2024-10-15 21:56:09 +08:00
|
|
|
|
|
2024-09-27 23:47:25 +08:00
|
|
|
|
|
2024-10-20 12:10:57 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 运行环境输出
|
|
|
|
|
|
/// </summary>
|
2025-06-02 19:17:30 +08:00
|
|
|
|
event EnvOutHandler EnvOutput;
|
|
|
|
|
|
|
2025-07-30 21:15:07 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 加载了DLL外部依赖事件
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="eventArgs"></param>
|
2025-06-02 19:17:30 +08:00
|
|
|
|
public void OnDllLoad(LoadDllEventArgs eventArgs);
|
2025-07-30 21:15:07 +08:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 项目加载完成事件
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="eventArgs"></param>
|
2025-06-02 19:17:30 +08:00
|
|
|
|
public void OnProjectLoaded(ProjectLoadedEventArgs eventArgs);
|
2025-07-30 21:15:07 +08:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 项目准备保存事件
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="eventArgs"></param>
|
2025-06-02 19:17:30 +08:00
|
|
|
|
public void OnProjectSaving(ProjectSavingEventArgs eventArgs);
|
2025-07-30 21:15:07 +08:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 节点连接关系发生改变事件
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="eventArgs"></param>
|
2025-06-02 19:17:30 +08:00
|
|
|
|
public void OnNodeConnectChanged(NodeConnectChangeEventArgs eventArgs);
|
2025-07-30 21:15:07 +08:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 画布创建事件
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="eventArgs"></param>
|
2025-06-02 19:17:30 +08:00
|
|
|
|
public void OnCanvasCreated(CanvasCreateEventArgs eventArgs);
|
2025-07-30 21:15:07 +08:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 画布移除事件
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="eventArgs"></param>
|
2025-06-02 19:17:30 +08:00
|
|
|
|
public void OnCanvasRemoved(CanvasRemoveEventArgs eventArgs);
|
2025-07-30 21:15:07 +08:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 节点创建事件
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="eventArgs"></param>
|
2025-06-02 19:17:30 +08:00
|
|
|
|
public void OnNodeCreated(NodeCreateEventArgs eventArgs);
|
2025-07-30 21:15:07 +08:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 节点移除事件
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="eventArgs"></param>
|
2025-06-02 19:17:30 +08:00
|
|
|
|
public void OnNodeRemoved(NodeRemoveEventArgs eventArgs);
|
2025-07-30 21:15:07 +08:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 节点放置事件
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="eventArgs"></param>
|
2025-06-02 19:17:30 +08:00
|
|
|
|
public void OnNodePlace(NodePlaceEventArgs eventArgs);
|
2025-07-30 21:15:07 +08:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 节点取出事件
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="eventArgs"></param>
|
2025-06-02 19:17:30 +08:00
|
|
|
|
public void OnNodeTakeOut(NodeTakeOutEventArgs eventArgs);
|
2025-07-30 21:15:07 +08:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 起始节点发生了变化事件
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="eventArgs"></param>
|
2025-06-02 19:17:30 +08:00
|
|
|
|
public void OnStartNodeChanged(StartNodeChangeEventArgs eventArgs);
|
2025-07-30 21:15:07 +08:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 流程运行完成事件
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="eventArgs"></param>
|
2025-06-02 19:17:30 +08:00
|
|
|
|
public void OnFlowRunComplete(FlowEventArgs eventArgs);
|
2025-07-30 21:15:07 +08:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 被监视的对象发生了改变事件
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="eventArgs"></param>
|
2025-06-02 19:17:30 +08:00
|
|
|
|
public void OnMonitorObjectChanged(MonitorObjectEventArgs eventArgs);
|
2025-07-30 21:15:07 +08:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 节点中断状态发生了改变事件(开启了中断/取消了中断)
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="eventArgs"></param>
|
2025-06-02 19:17:30 +08:00
|
|
|
|
public void OnNodeInterruptStateChanged(NodeInterruptStateChangeEventArgs eventArgs);
|
2025-07-30 21:15:07 +08:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 触发了中断事件
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="eventArgs"></param>
|
2025-06-02 19:17:30 +08:00
|
|
|
|
public void OnInterruptTriggered(InterruptTriggerEventArgs eventArgs);
|
2025-07-30 21:15:07 +08:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// IOC容器成员发生了改变事件
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="eventArgs"></param>
|
2025-06-02 19:17:30 +08:00
|
|
|
|
public void OnIOCMembersChanged(IOCMembersChangedEventArgs eventArgs);
|
2025-07-30 21:15:07 +08:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 节点需要定位事件
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="eventArgs"></param>
|
2025-06-02 19:17:30 +08:00
|
|
|
|
public void OnNodeLocated(NodeLocatedEventArgs eventArgs);
|
2025-07-30 21:15:07 +08:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 环境输出信息事件
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="type"></param>
|
|
|
|
|
|
/// <param name="value"></param>
|
2025-06-02 19:17:30 +08:00
|
|
|
|
public void OnEnvOutput(InfoType type, string value);
|
2024-12-29 21:26:03 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
2025-07-04 21:31:07 +08:00
|
|
|
|
|
2025-06-02 16:38:37 +08:00
|
|
|
|
|
2024-12-29 21:26:03 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 运行环境
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public interface IFlowEnvironment
|
|
|
|
|
|
{
|
|
|
|
|
|
#region 属性
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
2025-07-18 22:45:06 +08:00
|
|
|
|
/// <para>运行环境使用的IOC,默认情况下无需对其进行调用</para>
|
2024-12-29 21:26:03 +08:00
|
|
|
|
/// </summary>
|
|
|
|
|
|
ISereinIOC IOC { get; }
|
|
|
|
|
|
|
2025-07-04 21:31:07 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 流程编辑接口
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
IFlowEdit FlowEdit { get; }
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 流程控制接口
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
IFlowControl FlowControl { get; }
|
2025-06-02 16:45:10 +08:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 流程事件接口
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
IFlowEnvironmentEvent Event { get; }
|
|
|
|
|
|
|
2024-12-29 21:26:03 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 环境名称
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
string EnvName { get; }
|
|
|
|
|
|
|
2025-03-17 10:14:18 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 项目文件位置
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
string ProjectFileLocation { get; }
|
|
|
|
|
|
|
2024-12-29 21:26:03 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 是否全局中断
|
|
|
|
|
|
/// </summary>
|
2025-07-28 12:16:29 +08:00
|
|
|
|
bool _IsGlobalInterrupt { get; }
|
2024-12-29 21:26:03 +08:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// <para>表示是否正在控制远程</para>
|
|
|
|
|
|
/// <para>Local control remote env</para>
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
bool IsControlRemoteEnv { get; }
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 信息输出等级
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
InfoClass InfoClass { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 流程运行状态
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
RunState FlowState { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 表示当前环境
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
IFlowEnvironment CurrentEnv { get; }
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 由运行环境提供的UI线程上下文操作,用于类库中需要在UI线程中操作视觉元素的场景
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
UIContextOperation UIContextOperation { get; }
|
|
|
|
|
|
|
2024-09-24 22:39:43 +08:00
|
|
|
|
#endregion
|
|
|
|
|
|
|
2024-12-26 22:24:44 +08:00
|
|
|
|
#region 基本接口
|
2024-09-26 21:00:17 +08:00
|
|
|
|
|
2024-10-15 10:55:41 +08:00
|
|
|
|
/// <summary>
|
2024-11-08 17:30:51 +08:00
|
|
|
|
/// 输出信息
|
2024-10-15 10:55:41 +08:00
|
|
|
|
/// </summary>
|
2025-06-02 16:38:37 +08:00
|
|
|
|
/// <param name="message">消息</param>
|
|
|
|
|
|
/// <param name="type">输出类型</param>
|
|
|
|
|
|
/// <param name="class">输出级别</param>
|
2025-07-31 23:59:31 +08:00
|
|
|
|
void WriteLine(InfoType type, string message, InfoClass @class = InfoClass.Debug);
|
2025-07-04 21:31:07 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// <para>提供设置UI上下文的能力</para>
|
|
|
|
|
|
/// <para>提供设置UI上下文的能力,在WinForm/WPF项目中,在UI线程外对UI元素的修改将会导致异常</para>
|
|
|
|
|
|
/// <para>需要你提供</para>
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="uiContextOperation"></param>
|
|
|
|
|
|
void SetUIContextOperation(UIContextOperation uiContextOperation);
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#region 项目相关操作
|
2024-11-08 17:30:51 +08:00
|
|
|
|
|
2024-09-15 12:15:32 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 加载项目文件
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="filePath"></param>
|
2025-07-06 14:34:49 +08:00
|
|
|
|
void LoadProject(string filePath);
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 加载项目文件
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="filePath"></param>
|
|
|
|
|
|
Task LoadProjetAsync(string filePath);
|
2024-12-12 20:31:50 +08:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 保存项目
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
void SaveProject();
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 获取当前项目信息
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <returns></returns>
|
2025-07-30 21:15:07 +08:00
|
|
|
|
SereinProjectData GetProjectInfoAsync();
|
2024-12-12 20:31:50 +08:00
|
|
|
|
|
2024-12-26 22:24:44 +08:00
|
|
|
|
#endregion
|
2024-10-20 12:10:57 +08:00
|
|
|
|
|
2025-07-04 21:31:07 +08:00
|
|
|
|
#region 获取节点信息,获取方法信息,获取Emit委托
|
2024-10-20 12:10:57 +08:00
|
|
|
|
/// <summary>
|
2025-07-04 21:31:07 +08:00
|
|
|
|
/// 获取节点信息
|
2024-09-30 02:45:49 +08:00
|
|
|
|
/// </summary>
|
2025-07-04 21:31:07 +08:00
|
|
|
|
/// <param name="nodeGuid"></param>
|
|
|
|
|
|
/// <param name="nodeModel"></param>
|
2024-12-26 22:24:44 +08:00
|
|
|
|
/// <returns></returns>
|
2025-07-04 21:31:07 +08:00
|
|
|
|
bool TryGetNodeModel(string nodeGuid, out IFlowNode nodeModel);
|
2024-12-26 00:26:50 +08:00
|
|
|
|
|
2024-09-24 22:39:43 +08:00
|
|
|
|
/// <summary>
|
2025-07-04 21:31:07 +08:00
|
|
|
|
/// 获取方法描述信息
|
2024-09-24 22:39:43 +08:00
|
|
|
|
/// </summary>
|
2025-07-04 21:31:07 +08:00
|
|
|
|
/// <param name="assemblyName">程序集名称</param>
|
|
|
|
|
|
/// <param name="methodName">方法描述</param>
|
|
|
|
|
|
/// <param name="mdInfo">方法信息</param>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
bool TryGetMethodDetailsInfo(string assemblyName, string methodName, out MethodDetailsInfo mdInfo);
|
2024-12-26 22:24:44 +08:00
|
|
|
|
|
2024-09-15 12:15:32 +08:00
|
|
|
|
/// <summary>
|
2025-07-04 21:31:07 +08:00
|
|
|
|
/// 获取指定方法的Emit委托
|
2024-09-15 12:15:32 +08:00
|
|
|
|
/// </summary>
|
2025-07-04 21:31:07 +08:00
|
|
|
|
/// <param name="assemblyName">程序集名称</param>
|
|
|
|
|
|
/// <param name="methodName"></param>
|
|
|
|
|
|
/// <param name="del"></param>
|
2024-12-26 22:24:44 +08:00
|
|
|
|
/// <returns></returns>
|
2025-07-04 21:31:07 +08:00
|
|
|
|
bool TryGetDelegateDetails(string assemblyName, string methodName, out DelegateDetails del);
|
2024-12-26 22:24:44 +08:00
|
|
|
|
#endregion
|
|
|
|
|
|
|
2025-07-04 21:31:07 +08:00
|
|
|
|
|
|
|
|
|
|
#region 类库依赖相关
|
2024-10-15 21:56:09 +08:00
|
|
|
|
|
2025-03-22 18:14:48 +08:00
|
|
|
|
/// <summary>
|
2025-07-04 21:31:07 +08:00
|
|
|
|
/// 从文件中加载Dll
|
2025-03-22 18:14:48 +08:00
|
|
|
|
/// </summary>
|
2025-07-04 21:31:07 +08:00
|
|
|
|
/// <param name="dllPath"></param>
|
|
|
|
|
|
void LoadLibrary(string dllPath);
|
2025-03-22 18:14:48 +08:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
2025-07-04 21:31:07 +08:00
|
|
|
|
/// 移除DLL
|
2025-03-22 18:14:48 +08:00
|
|
|
|
/// </summary>
|
2025-07-04 21:31:07 +08:00
|
|
|
|
/// <param name="assemblyFullName">程序集的名称</param>
|
|
|
|
|
|
bool TryUnloadLibrary(string assemblyFullName);
|
2024-10-15 21:56:09 +08:00
|
|
|
|
|
2024-09-15 12:15:32 +08:00
|
|
|
|
/// <summary>
|
2025-07-04 21:31:07 +08:00
|
|
|
|
/// 运行时加载
|
2024-09-15 12:15:32 +08:00
|
|
|
|
/// </summary>
|
2025-07-04 21:31:07 +08:00
|
|
|
|
/// <param name="file">文件名</param>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
bool LoadNativeLibraryOfRuning(string file);
|
2024-10-15 21:56:09 +08:00
|
|
|
|
|
2024-09-15 12:15:32 +08:00
|
|
|
|
/// <summary>
|
2025-07-04 21:31:07 +08:00
|
|
|
|
/// 运行时加载指定目录下的类库
|
2024-10-27 00:54:10 +08:00
|
|
|
|
/// </summary>
|
2025-07-04 21:31:07 +08:00
|
|
|
|
/// <param name="path">目录</param>
|
|
|
|
|
|
/// <param name="isRecurrence">是否递归加载</param>
|
|
|
|
|
|
void LoadAllNativeLibraryOfRuning(string path, bool isRecurrence = true);
|
2024-12-12 22:57:15 +08:00
|
|
|
|
|
2025-07-04 21:31:07 +08:00
|
|
|
|
#endregion
|
2025-06-22 21:53:37 +08:00
|
|
|
|
|
2025-06-02 16:38:37 +08:00
|
|
|
|
|
2024-12-12 22:57:15 +08:00
|
|
|
|
|
2025-07-04 21:31:07 +08:00
|
|
|
|
#region 远程相关
|
2025-07-27 23:34:01 +08:00
|
|
|
|
/*/// <summary>
|
2025-07-04 21:31:07 +08:00
|
|
|
|
/// 启动远程服务
|
2024-09-15 12:15:32 +08:00
|
|
|
|
/// </summary>
|
2025-07-04 21:31:07 +08:00
|
|
|
|
Task StartRemoteServerAsync(int port = 7525);
|
2024-10-15 10:55:41 +08:00
|
|
|
|
|
2025-06-22 21:53:37 +08:00
|
|
|
|
/// <summary>
|
2025-07-04 21:31:07 +08:00
|
|
|
|
/// 停止远程服务
|
2025-06-22 21:53:37 +08:00
|
|
|
|
/// </summary>
|
2025-07-04 21:31:07 +08:00
|
|
|
|
void StopRemoteServer();
|
2025-06-02 16:38:37 +08:00
|
|
|
|
|
2024-12-24 22:23:53 +08:00
|
|
|
|
/// <summary>
|
2025-07-04 21:31:07 +08:00
|
|
|
|
/// (适用于远程连接后获取环境的运行状态)获取当前环境的信息
|
2024-12-24 22:23:53 +08:00
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <returns></returns>
|
2025-07-04 21:31:07 +08:00
|
|
|
|
Task<FlowEnvInfo> GetEnvInfoAsync();
|
2024-12-26 00:26:50 +08:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
2025-07-04 21:31:07 +08:00
|
|
|
|
/// 加载远程环境
|
2024-12-26 00:26:50 +08:00
|
|
|
|
/// </summary>
|
2025-07-04 21:31:07 +08:00
|
|
|
|
/// <param name="addres">远程环境地址</param>
|
|
|
|
|
|
/// <param name="port">远程环境端口</param>
|
|
|
|
|
|
/// <param name="token">密码</param>
|
|
|
|
|
|
Task<(bool, RemoteMsgUtil)> ConnectRemoteEnv(string addres, int port, string token);
|
2024-12-26 00:26:50 +08:00
|
|
|
|
|
2025-06-22 21:53:37 +08:00
|
|
|
|
/// <summary>
|
2025-07-04 21:31:07 +08:00
|
|
|
|
/// 退出远程环境
|
2025-06-22 21:53:37 +08:00
|
|
|
|
/// </summary>
|
2025-07-04 21:31:07 +08:00
|
|
|
|
void ExitRemoteEnv();
|
2025-07-27 23:34:01 +08:00
|
|
|
|
*/
|
2024-12-24 11:51:12 +08:00
|
|
|
|
/// <summary>
|
2025-07-04 21:31:07 +08:00
|
|
|
|
/// (用于远程)通知节点属性变更
|
2024-12-24 11:51:12 +08:00
|
|
|
|
/// </summary>
|
2025-07-04 21:31:07 +08:00
|
|
|
|
/// <param name="nodeGuid">节点Guid</param>
|
|
|
|
|
|
/// <param name="path">属性路径</param>
|
|
|
|
|
|
/// <param name="value">属性值</param>
|
2024-12-24 11:51:12 +08:00
|
|
|
|
/// <returns></returns>
|
2025-07-04 21:31:07 +08:00
|
|
|
|
Task NotificationNodeValueChangeAsync(string nodeGuid, string path, object value);
|
2024-12-12 22:57:15 +08:00
|
|
|
|
|
2025-07-04 21:31:07 +08:00
|
|
|
|
#endregion
|
2024-09-15 12:15:32 +08:00
|
|
|
|
|
2024-10-10 16:49:37 +08:00
|
|
|
|
|
2024-12-26 16:42:05 +08:00
|
|
|
|
|
2025-07-04 21:31:07 +08:00
|
|
|
|
#region 节点中断、表达式(暂时没用)
|
2024-12-26 16:42:05 +08:00
|
|
|
|
#if false
|
|
|
|
|
|
|
2024-12-26 22:24:44 +08:00
|
|
|
|
/// <summary>
|
2024-10-27 00:54:10 +08:00
|
|
|
|
/// 设置节点中断
|
2024-09-22 14:10:13 +08:00
|
|
|
|
/// </summary>
|
2024-10-27 00:54:10 +08:00
|
|
|
|
/// <param name="nodeGuid">更改中断状态的节点Guid</param>
|
|
|
|
|
|
/// <param name="isInterrup">是否中断</param>
|
2024-09-22 14:10:13 +08:00
|
|
|
|
/// <returns></returns>
|
2024-12-26 16:42:05 +08:00
|
|
|
|
Task<bool> SetNodeInterruptAsync(string nodeGuid, bool isInterrup);
|
2024-09-22 17:37:32 +08:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
2024-09-24 22:39:43 +08:00
|
|
|
|
/// 添加作用于某个对象的中断表达式
|
2024-09-22 17:37:32 +08:00
|
|
|
|
/// </summary>
|
2024-10-15 10:55:41 +08:00
|
|
|
|
/// <param name="key"></param>
|
2024-09-22 17:37:32 +08:00
|
|
|
|
/// <param name="expression"></param>
|
|
|
|
|
|
/// <returns></returns>
|
2024-10-20 12:10:57 +08:00
|
|
|
|
Task<bool> AddInterruptExpressionAsync(string key, string expression);
|
2024-10-15 10:55:41 +08:00
|
|
|
|
|
2024-09-22 14:10:13 +08:00
|
|
|
|
/// <summary>
|
2024-09-24 22:39:43 +08:00
|
|
|
|
/// 监视指定对象
|
2024-09-22 14:10:13 +08:00
|
|
|
|
/// </summary>
|
2024-10-15 10:55:41 +08:00
|
|
|
|
/// <param name="key">需要监视的对象</param>
|
2024-09-24 22:39:43 +08:00
|
|
|
|
/// <param name="isMonitor">是否启用监视</param>
|
2024-12-26 16:42:05 +08:00
|
|
|
|
void SetMonitorObjState(string key, bool isMonitor);
|
2024-09-15 12:15:32 +08:00
|
|
|
|
|
2024-09-24 22:39:43 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 检查一个对象是否处于监听状态,如果是,则传出与该对象相关的表达式(用于中断),如果不是,则返回false。
|
|
|
|
|
|
/// </summary>
|
2024-10-20 12:10:57 +08:00
|
|
|
|
/// <param name="key">判断的对象</param>
|
2024-09-24 22:39:43 +08:00
|
|
|
|
/// <returns></returns>
|
2024-10-20 12:10:57 +08:00
|
|
|
|
Task<(bool, string[])> CheckObjMonitorStateAsync(string key);
|
2024-09-22 17:37:32 +08:00
|
|
|
|
|
|
|
|
|
|
|
2024-09-24 22:39:43 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 全局中断
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="signal"></param>
|
|
|
|
|
|
/// <param name="interruptClass"></param>
|
|
|
|
|
|
/// <returns></returns>
|
2024-12-26 16:42:05 +08:00
|
|
|
|
Task<CancelType> InterruptNode();
|
|
|
|
|
|
#endif
|
|
|
|
|
|
#endregion
|
2024-09-24 22:39:43 +08:00
|
|
|
|
|
2024-11-02 16:48:40 +08:00
|
|
|
|
|
2025-07-04 21:31:07 +08:00
|
|
|
|
}
|
2024-09-27 23:47:25 +08:00
|
|
|
|
|
|
|
|
|
|
|
2024-09-15 12:15:32 +08:00
|
|
|
|
}
|