kupl_sgraph_add_node
向kupl静态图中添加 sgraph node节点,即添加静态的节点。
接口定义
kupl_sgraph_node_h kupl_sgraph_add_node(kupl_sgraph_h sgraph, kupl_sgraph_node_desc_t *desc);
参数
参数名 |
类型 |
描述 |
输入/输出 |
---|---|---|---|
sgraph |
kupl_sgraph_h |
需要向其中添加 sgraph node的静态图 |
输入/输出 |
desc |
kupl_sgraph_node_desc_t * |
需要添加的 sgraph node的描述,具体见下表 |
输入 |
参数名 |
类型 |
描述 |
---|---|---|
func |
kupl_sgraph_node_func_t |
sgraph node节点的函数,该节点提交执行后需要执行的具体函数 |
args |
void * |
func函数需要传入的参数 |
name |
const char * |
需要配置掩码KUPL_SGRAPH_NODE_DESC_FIELD_NAME 后才能生效;该节点的名字 |
priority |
int |
需要配置掩码KUPL_SGRAPH_NODE_DESC_FIELD_PRIORITY 后才能生效;该节点的优先级,数值越大,优先级越高 |
flag |
uint32_t |
需要配置掩码 KUPL_SGRAPH_NODE_DESC_FIELD_FLAG后才能生效;该节点的flag,可设置为 KUPL_SGRAPH_NODE_FLAG_IMM,表示提交后将直接执行该节点 |
field_mask |
uint32_t |
掩码,用于指定结构体中哪些值有效,不设置掩码情况下仅func、args参数生效,其他需要设置掩码。 具体可设置的掩码: KUPL_SGRAPH_NODE_DESC_FIELD_NAME: name生效 KUPL_SGRAPH_NODE_DESC_FIELD_PRIORITY: priority生效KUPL_SGRAPH_NODE_DESC_FIELD_FLAG: flag生效 |
返回值
- 成功:返回添加的 sgraph node节点
- 失败:返回nullptr
示例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | #include <stdio.h> #include "kupl.h" static inline void task_str(void *args) { printf("static graph task test.\n"); } int main() { kupl_graph_h graph = kupl_graph_create(NULL); kupl_sgraph_h sgraph = kupl_sgraph_create(); kupl_sgraph_node_desc_t node_desc = { .func = task_str, .args = NULL, }; kupl_sgraph_node_h node = kupl_sgraph_add_node(sgraph, &node_desc); kupl_sgraph_task_desc_t task_desc = { .sgraph = sgraph, }; kupl_task_info_t info = { .type = KUPL_TASK_TYPE_SGRAPH, .desc = &task_desc, }; kupl_graph_submit(graph, &info); kupl_graph_wait(graph); kupl_graph_destroy(graph); kupl_sgraph_destroy(sgraph); return 0; } |
static graph task test.

上述示例演示了在静态图中添加gnode,并通过提交静态图执行的流程。上述 kupl_sgraph_add_node 函数向静态图sgraph中添加了sgraph node节点,该sgraph node节点的函数为task_str,函数不需要参数。