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

Method run

tutorial/MyGNode/MyWriteParamNode.h:27–53  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

25 }
26
27 CStatus run() override {
28 /**
29 * 为了提高执行效率,
30 * 在【创建参数】的时候,【提供】锁保护机制
31 * 在【获取参数】的时候,【不提供】锁保护的机制
32 * 故无法通过在run()过程中,并发的通过 createGParam 和 getGParam 创建和获取参数
33 * 如果需要做此操作,请自行外部加锁
34 */
35 auto* myParam = CGRAPH_GET_GPARAM_WITH_NO_EMPTY(MyParam, "param1")
36 int val = 0;
37 int cnt = 0;
38 {
39 CGRAPH_PARAM_WRITE_CODE_BLOCK(myParam)
40 /**
41 * 建议将需要的内容获取出来,然后在 CODE_BLOCK 外进行与param无关的参数加工(本例中为:打印信息)。
42 * 这样做的好处,是可以尽可能减少 CODE_BLOCK 的范围
43 */
44 val = ++myParam->iValue; // 对param中的信息,进行写入
45 cnt = ++myParam->iCount;
46 }
47
48 /* 执行时,仅依赖val值,跟当前param1->iValue值无关,可以放到 CODE_BLOCK 外部 */
49 CGraph::CGRAPH_ECHO("[%s], iValue value is : [%d], iCount value is [%d] ... ",
50 this->getName().c_str(), val, cnt);
51
52 return CStatus();
53 }
54};
55
56#endif //CGRAPH_MYWRITEPARAMNODE_H

Callers

nothing calls this directly

Calls 1

CGRAPH_ECHOFunction · 0.85

Tested by

no test coverage detected