MCPcopy Create free account
hub / github.com/ChunelFeng/CGraph / tutorial_multi_condition

Function tutorial_multi_condition

tutorial/T21-MultiCondition.cpp:15–37  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

13using namespace CGraph;
14
15void tutorial_multi_condition() {
16 GPipelinePtr pipeline = GPipelineFactory::create(); // 创建一个pipeline,用于执行图框架信息
17 GElementPtr a, b_multi_condition, c, d_multi_condition = nullptr;
18 b_multi_condition = pipeline->createGGroup<GMultiCondition<GMultiConditionType::SERIAL>>({
19 pipeline->createGNode<MyNode1>(GNodeInfo("nodeB1")), // 本节点【不会】执行,因为默认不执行
20 pipeline->createGNode<MyMatchNode>(GNodeInfo("nodeB2")) // 本节点【会】执行,因为 isMatch() 返回为 true
21 });
22
23 d_multi_condition = pipeline->createGGroup<GMultiCondition<GMultiConditionType::PARALLEL>>({
24 // 这里的两个节点,均不会被执行,以为 isMatch 的条件不满足
25 pipeline->createGNode<MyMatchNode>(GNodeInfo("nodeD1")),
26 pipeline->createGNode<MyMatchNode>(GNodeInfo("nodeD2"))
27 });
28
29 CStatus status = pipeline->registerGElement<MyWriteParamNode>(&a, {}, "nodeA");
30 // 新版本中,推荐使用 registerGGroup 来注册group信息,简化流程
31 status += pipeline->registerGGroup(&b_multi_condition, {a}, "multiConditionB");
32 status += pipeline->registerGElement<MyWriteParamNode>(&c, {b_multi_condition}, "nodeC");
33 status += pipeline->registerGGroup(&d_multi_condition, {c}, "multiConditionD");
34
35 pipeline->process(); // 运行pipeline
36 GPipelineFactory::remove(pipeline);
37}
38
39
40int main() {

Callers 1

mainFunction · 0.70

Calls 5

createFunction · 0.85
GNodeInfoClass · 0.85
removeFunction · 0.85
registerGGroupMethod · 0.80
processMethod · 0.45

Tested by

no test coverage detected