int16_t* dispatcher::create_result_node(int source_idx, long input_data_idx){ /* insert the new node */ result_list * new_node = new result_list; new_node->data_idx = input_data_idx; /* if reuslt buffer is empty */ if(result_head[source_idx]->next == result_tail[source_idx]){ /* insert node between head and tail */ result_tail[source_idx]->pre = new_node; new_node->next = result_tail[source_idx]; result_head[source_idx]->next = new_node; new_node->pre = result_head[source_idx]; ordered_num[source_idx] = 0; ordered_edge[source_idx] = result_head[source_idx]; return new_node->result_data;
时间: 2024-03-29 12:38:27 浏览: 59
这段代码看起来是 C++ 语言的,是在创建一个新的结果节点,并将其插入到结果列表中。具体来说,这个函数接受两个参数:source_idx 表示源索引,input_data_idx 表示输入数据索引。函数首先创建一个新的结果节点 new_node,并将 input_data_idx 存储在其 data_idx 属性中。然后,如果结果缓冲区是空的,就将 new_node 插入到结果列表的头和尾之间。具体来说,将 result_tail[source_idx] 的 pre 属性设置为 new_node,new_node 的 next 属性设置为 result_tail[source_idx],result_head[source_idx] 的 next 属性设置为 new_node,new_node 的 pre 属性设置为 result_head[source_idx]。最后,将 ordered_num[source_idx] 设置为 0,将 ordered_edge[source_idx] 设置为 result_head[source_idx],并返回 new_node 的 result_data 属性。
阅读全文