47 lines
1.2 KiB
C++
47 lines
1.2 KiB
C++
#pragma once
|
|
/*
|
|
* @brief 顺控节点异常恢复流程
|
|
* @author sjq
|
|
* @date 五月 2018
|
|
*/
|
|
|
|
#include "CMethodSeq.h"
|
|
#include "CRecoverNode.h"
|
|
|
|
class CNodeSeq;
|
|
class CRecoverNode;
|
|
class CMethodRecoverSeq : public CMethodSeq
|
|
{
|
|
public:
|
|
CMethodRecoverSeq(CNodeSeq& seq, const CRecoverNodeSeq& recover);
|
|
~CMethodRecoverSeq();
|
|
bool execute();
|
|
protected:
|
|
bool executeChilds();//执行所有功能
|
|
//开始执行所有的功能, 返回串行功能的执行结果
|
|
ESeqCtrl_NodeState startExecuteChilds(
|
|
std::vector<CMethodFuncAsync* >& vec);
|
|
//开始处理并行节点的 结果
|
|
ESeqCtrl_NodeState startAsyncExecuteChilds(
|
|
std::vector<CMethodFuncAsync* >& vec);
|
|
|
|
private:
|
|
void recoverCurState();
|
|
|
|
ESeqCtrl_NodeState recoverFuncNode(
|
|
const CRecoverNode& funRecover,
|
|
CNodeFunc& func,
|
|
std::vector<CMethodFuncAsync* >& vec);
|
|
|
|
ESeqCtrl_NodeState recoverOneSysncFunc(
|
|
const CRecoverNode& funRecover,
|
|
CNodeFunc& func);
|
|
|
|
ESeqCtrl_NodeState recoverOneAsysncFunc(
|
|
const CRecoverNode& funRecover,
|
|
CNodeFunc& func,
|
|
std::vector<CMethodFuncAsync* >& vec);
|
|
private:
|
|
CRecoverNodeSeq m_objRecover;
|
|
};
|