组件事件模型

更新时间:
2024-04-23
下载文档

组件事件模型

本节介绍 AutoCode 组件事件模型。

事件(Event)与端口(Port)类型

在 AutoCode 组件模型中,事件是组件中的通用元件,事件有一个输入端口和一个可选的输出端口。事件端口有不同的事件类型,事件类型与事件输入端口类型相同。

  • 系统(SYS)事件:输入端口配制系统端口(Input SysPort)的事件是系统事件;

  • VSOA 事件:服务输入输出端口是 VSOA 端口,与 VSOA 端口直接连接的端口是 VSOA 端口,输入端口是 VSOA 端口的事件是 VSOA 事件;

  • COM 事件:组件之间相连接的端口是 COM 端口,输出端口是 COM 端口中的是 COM 事件; 多通道管道组件中除第一个事件以外的事件也是 COM 事件,请参考管道组件相关文档。

事件连接规则

  • 服务输出端口连接其它组件的 VSOA 输入端口,连接关系是 1 : 1, 即每个服务输出端口只能连接到一个事件端口,每个 VSOA 事件在一个惟一确定的接口处理。

  • COM 输出端口连接 COM 输入端口, 一般组件连接关系为 1 : N, 即一件事件可以驱动多个事件处理;管道组件连接关系为 1 : 1,即每个事件都在一个管道通道中。

  • VSOA 事件输出端口连接服务输出端口, 连接关系 N : 1, 即每个服务资源可以被多个事件接口调用。

事件端口数据

事件输入端口定义了输入数据类型,输出端口定义了输出数据类型。事件端口数据类型定义规则如下:

  • VSOA 端口配制 JStruct 数据类型,定义了 VSOA 端口数据类型;

  • SYS 端口一般情况没有数据参数;

  • COM 输入端口数据类型与直接连接的前向 COM 输出端口数据类型一致;

  • COM 输出端口缺省数据类型与事件输入端口数据类型一致,用户可以配置 COM 输出端口数据类型。

COM 输出端口可配制基本数据类型,还可以配制用户在资源管理器中自定义的 Custom-Struct 结构体类型。COM 输出端口 TypeValue 属性中可以配制数据类型如图所示。

注意

当一个事件的输出端口与输入端口数据类型相同时,输出接口将自动引用输入接口数据。

事件编程接口

一般情况下,AutoCode 在生成代码时,将为每个组件事件创建一个事件回调函数,即用户编程接口。

  • 用户编程接口参数即事件输入数据,参数类型与事件输入端口数据类型一致;

  • 事件如果存在输出端口,接口中还会为输出端口生成系统维护的代码,处理输出端口事件;

  • 系统还声明了输出数据,用户需要在接口中填充输出数据数值,输出端口将输出数据传递到下一事件过程。

下面是一个典型的 VSOA 输入输出端口事件:

该事件接口示例:

图中各区域说明:

    1. 输入数据。
    1. 输出数据定义。
    1. 用户填充输出数据。
    1. 系统维护输出端口行为。
    1. 接口返回之间处理:释放资源,返回结果。

注意:

事件接口中有注释段提示用户编程区域与系统维护代码,用户可在自定义区域处理数据和业务逻辑。在接口文件全局环境,用户也可以自定义程序。在生成代码时,用户自定义的代码将合并到新的代码中。 一般情况下,用户不得修改系统维护的代码,用户在不熟悉 AutoCode 运行时架构时修改系统代码可能会破坏程序运行机制。

文档内容是否对您有所帮助?
有帮助
没帮助