DAWorkbench 0.0.1
DAWorkbench API
载入中...
搜索中...
未找到
DA::DAWorkFlowExecuter类 参考

工作流任务的执行者,执者和workflow通过信号传递信息,在workflow中,执行者是在一个单独线程中 更多...

#include <DAWorkFlowExecuter.h>

类 DA::DAWorkFlowExecuter 继承关系图:

class  PrivateData
 

Public 槽

void startExecute ()
 开始执行节点运算
 
void terminateRequest ()
 终止请求
 
void executeNode (DAAbstractNode::SharedPointer n)
 节点执行的槽函数
 

信号

void nodeExecuteFinished (DAAbstractNode::SharedPointer n, bool state)
 节点执行完成返回的结果
 
void finished (bool success)
 完成执行发射此信号
 

Public 成员函数

 DAWorkFlowExecuter (QObject *p=nullptr)
 
void setStartNode (DAAbstractNode::SharedPointer n)
 设置开始节点
 
void setWorkFlow (DAWorkFlow *wf)
 设置工作流
 
QList< DAAbstractNode::SharedPointer > getGlobalNodes () const
 获取全局节点
 
QList< DAAbstractNode::SharedPointer > getIsolatedNodesNodes () const
 获取孤立节点
 
bool isTerminateRequest () const
 判断是否在请求结束
 

详细描述

工作流任务的执行者,执者和workflow通过信号传递信息,在workflow中,执行者是在一个单独线程中

成员函数说明

◆ executeNode

void DA::DAWorkFlowExecuter::executeNode ( DAAbstractNode::SharedPointer  n)
slot

节点执行的槽函数

执行完成后会发射

参见
nodeExecuteFinished 信号

关于节点执行等待问题:

如果有如下链路,需要进行等待

[1]—>[2.1]—>[2.2]—>[4] | ↑ └-->[3.1]---------—┘

上面这个链路1节点分出2.1和3.1

2.1经过2.2才到4,3.1直接到4,因此,4的执行必须等待2.2的执行

复杂一点的情况如:

         ┌———>[4.1]—┐
         |          ↓

[1]—>[2.1]=┙->[2.2]—>[5] | ↑ ↑ └-->[3.1]===┙-----—┘

也就是说,入度不全,不能继续传递

参数
n

◆ getGlobalNodes()

QList< DAAbstractNode::SharedPointer > DA::DAWorkFlowExecuter::getGlobalNodes ( ) const

获取全局节点

返回

◆ getIsolatedNodesNodes()

QList< DAAbstractNode::SharedPointer > DA::DAWorkFlowExecuter::getIsolatedNodesNodes ( ) const

获取孤立节点

返回

◆ isTerminateRequest()

bool DA::DAWorkFlowExecuter::isTerminateRequest ( ) const

判断是否在请求结束

返回

◆ nodeExecuteFinished

void DA::DAWorkFlowExecuter::nodeExecuteFinished ( DAAbstractNode::SharedPointer  n,
bool  state 
)
signal

节点执行完成返回的结果

参数
n

◆ setStartNode()

void DA::DAWorkFlowExecuter::setStartNode ( DAAbstractNode::SharedPointer  n)

设置开始节点

参数
n

◆ setWorkFlow()

void DA::DAWorkFlowExecuter::setWorkFlow ( DAWorkFlow wf)

设置工作流

参数
wf

◆ startExecute

void DA::DAWorkFlowExecuter::startExecute ( )
slot

开始执行节点运算

此函数有DAWorkFlow的exec函数触发

参数
n

首先执行注册的prepareStartexec回调

最后执行注册的prepareEndexec回调


该类的文档由以下文件生成: