| 466 | } |
| 467 | |
| 468 | cg::OperatorNodeBase* ExternCOprRunner::make_from_desc_shared( |
| 469 | std::string& name, const VarNodeArray& inputs, std::shared_ptr<MGBOprDesc> desc, |
| 470 | const OperatorNodeConfig& config) { |
| 471 | mgb_assert(!inputs.empty() && desc->nr_output); |
| 472 | |
| 473 | #define CHECK(name) mgb_assert(desc->name, #name " is not given"); |
| 474 | MGB_OPR_DESC_FOREACH_MEM_FN(CHECK); |
| 475 | #undef CHECK |
| 476 | |
| 477 | if (!config.name().valid()) |
| 478 | const_cast<OperatorNodeConfig&>(config).name(name); |
| 479 | |
| 480 | auto opr = inputs[0]->owner_graph()->insert_opr( |
| 481 | std::make_unique<ExternCOprRunner>(name, inputs, std::move(desc), config)); |
| 482 | return &opr->cast_final_safe<ExternCOprRunner>(); |
| 483 | } |
| 484 | |
| 485 | bool ExternCOprRunner::unregister_loader(const char* name) { |
| 486 | return loader_map().erase(name); |
nothing calls this directly
no test coverage detected