| 237 | } |
| 238 | |
| 239 | void TaskNode::ToProto(TaskProto* task_proto, bool check) const { |
| 240 | // Step1: process some scalar items. |
| 241 | task_proto->set_task_type(GetTaskType()); |
| 242 | task_proto->set_machine_id(machine_id_); |
| 243 | task_proto->set_thrd_id(thrd_id_); |
| 244 | task_proto->set_task_id(task_id_); |
| 245 | task_proto->set_job_id(GlobalJobDesc().job_id()); |
| 246 | task_proto->set_chain_id(chain_id_); |
| 247 | task_proto->set_order_in_chain(order_in_chain_); |
| 248 | |
| 249 | // Step2: process exec_gph. |
| 250 | exec_gph_.ToExecSequence(parallel_ctx(), task_proto->mutable_exec_sequence()); |
| 251 | |
| 252 | // Step3: process produced_regst. |
| 253 | auto* produced_regst_proto = task_proto->mutable_produced_regst_desc(); |
| 254 | for (auto& pair : produced_regsts_) { |
| 255 | RegstDescProto regst_desc_proto; |
| 256 | pair.second->ToProto(®st_desc_proto, check); |
| 257 | CHECK(produced_regst_proto->insert({pair.first, regst_desc_proto}).second); |
| 258 | } |
| 259 | |
| 260 | // Step4: process consumed_regst. |
| 261 | auto* consumed_regst_proto = task_proto->mutable_consumed_regst_desc_id(); |
| 262 | for (const auto& pair : consumed_regsts_) { |
| 263 | RegstDescIdSet regst_desc_ids; |
| 264 | for (const std::shared_ptr<RegstDesc>& regst : pair.second) { |
| 265 | regst_desc_ids.add_regst_desc_id(regst->regst_desc_id()); |
| 266 | } |
| 267 | CHECK(consumed_regst_proto->insert({pair.first, regst_desc_ids}).second); |
| 268 | } |
| 269 | } |
| 270 | |
| 271 | MemZoneId TaskNode::MemZoneId121() const { |
| 272 | StreamId stream_id = DecodeStreamIdFromInt64(thrd_id_); |
no test coverage detected