Coder Social home page Coder Social logo

Comments (1)

ChunelFeng avatar ChunelFeng commented on September 26, 2024

您好,对应的代码思路,和工程不符和。group 中信息,包含的内容,仅包含本group内一层。
修改后的逻辑,如下所示:

void tutorial_simple() {
    /*
						      Node0
						         /  \
						Node1  Node2
						          \  /
						       Node3
						          |
						      条件1
						      /    \
                                                   Node4   Node5
					           |
					       条件2
					         /  \
			                Node6  Node7
*/


    GPipelinePtr pipeline = GPipelineFactory::create();


    GElementPtr node0, node1, node2, node3,node4,node5,node6,node7 = nullptr;

    node4 = pipeline->createGNode<MyNode1>(GNodeInfo({}, "node4", 1));
    node5 = pipeline->createGNode<MyNode1>(GNodeInfo({}, "node5", 1));
    node6 = pipeline->createGNode<MyNode1>(GNodeInfo({}, "node6", 1));
    node7 = pipeline->createGNode<MyNode1>(GNodeInfo({}, "node7", 1));

    // 在 cluster1 中,先执行 node4的逻辑,在执行 condition{node6, node7} 逻辑
    GElementPtr cluster1 = pipeline->createGGroup<GCluster>(
            {
                    node4,
                    pipeline->createGGroup<MyCondition>({node6, node7})
            }
            );
    
    GElementPtr condition1 = pipeline->createGGroup<MyCondition>({ cluster1, node5});

    CStatus status = pipeline->registerGElement<MyNode1>(&node0, {}, "node0", 1);
    status += pipeline->registerGElement<MyNode1>(&node1, { node0 }, "node1", 1);
    status += pipeline->registerGElement<MyNode1>(&node2, { node0 }, "node2", 1);
    status += pipeline->registerGElement<MyNode1>(&node3, { node1,node2 }, "node3", 1);
    status += pipeline->registerGElement<GRegion>(&condition1, { node3 }, "condition1", 1);

    pipeline->process();

    GPipelineFactory::remove(pipeline);
}

btw,当前最新版本中,有 pipeline->dump() 的逻辑,可以帮助快速查看 dag结构图,
也加入了一些调度优化的思路,推荐升级。

from cgraph.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.