fix: 修复任务特化时 next 等不带前缀的问题

This commit is contained in:
zzyyyl
2022-10-11 20:34:59 +08:00
parent e7ca26ec9a
commit 9fb1b94f34
2 changed files with 6 additions and 4 deletions

View File

@@ -52,7 +52,7 @@ bool asst::TaskData::parse(const json::value& json)
for (const auto& [name, pos, task_json] : template_task_info) {
// 可能某个名字里带@的任务不是模板任务特化,只是普通的基类任务,这里最后一个参数可能为 nullptr
auto task_info_ptr = generate_task_info(name, task_json, get(name.substr(pos)));
auto task_info_ptr = generate_task_info(name, task_json, get(name.substr(pos)), name.substr(0, pos));
if (task_info_ptr == nullptr) {
return false;
}
@@ -74,7 +74,8 @@ bool asst::TaskData::parse(const json::value& json)
std::shared_ptr<asst::TaskInfo> asst::TaskData::generate_task_info(const std::string& name,
const json::value& task_json,
std::shared_ptr<TaskInfo> default_ptr)
std::shared_ptr<TaskInfo> default_ptr,
const std::string& task_prefix)
{
if (default_ptr == nullptr) {
default_ptr = default_task_info_ptr;
@@ -115,7 +116,7 @@ std::shared_ptr<asst::TaskInfo> asst::TaskData::generate_task_info(const std::st
}
// 不管什么algorithm都有基础成员next, roi, 等等)
if (!append_base_task_info(task_info_ptr, name, task_json, default_ptr)) {
if (!append_base_task_info(task_info_ptr, name, task_json, default_ptr, task_prefix)) {
return nullptr;
}
task_info_ptr->algorithm = algorithm;

View File

@@ -70,7 +70,8 @@ namespace asst
// 这是下面几个函数的封装
std::shared_ptr<TaskInfo> generate_task_info(const std::string& name, const json::value&,
std::shared_ptr<TaskInfo> default_ptr);
std::shared_ptr<TaskInfo> default_ptr,
const std::string& task_prefix = "");
std::shared_ptr<TaskInfo> generate_match_task_info(const std::string& name, const json::value&,
std::shared_ptr<MatchTaskInfo> default_ptr);