// #include // #include // #include // #include // #include // #include // #include // #include // #include // #include // #include // #include // #include // #include // #include // #include // #include #include #include #include // for default case #include #include #include #include #include #include #include #include #include std::unique_ptr build_algorithm(int algId, const string &ruleId, const string &name, const mix_cc::json &rule_json, const double padding_low, const double padding_up) { LOG d("build_algorithm"); switch (algId) { case 1: case 2: case 3: case 4: case 5: return std::make_unique(name, rule_json, ruleId, algId); break; case 6: case 7: return std::make_unique(name, rule_json, ruleId, algId); break; case 8: return std::make_unique(name, rule_json, ruleId); break; case 9: return std::make_unique(name, rule_json, ruleId, -1); break; case 10: case 11: /*故障代码解析*/ return std::make_unique(name, rule_json, ruleId, algId - 10); break; case 12: case 13: return std::make_unique(name, rule_json, ruleId, algId); break; case 14: return std::make_unique(name, rule_json, ruleId); break; case 15: return std::make_unique(name, rule_json, ruleId); break; case 16: case 18: return std::make_unique(name, rule_json, ruleId, algId); break; case 17: return std::make_unique(name, rule_json, ruleId, algId); break; // case 18: // return std::make_unique(name, rule_json, ruleId, -3); // break; // case 11: // // return std::make_unique(name, rule_json, ruleId); // break; // case 20: // case 21: // case 220: // case 221: // case 111: // return std::make_unique(name, rule_json, ruleId, 1); // break; // case 23: // return std::make_unique(name, rule_json, ruleId); // break; // case 22: // case 25: // case 27: // case 28: // return std::make_unique(name, rule_json, ruleId, 1, // padding_low, padding_up); // break; // case 30: // // case 230: // return std::make_unique(name, rule_json, ruleId); // break; // case 32: // // return std::make_unique(name, rule_json, ruleId); // break; // case 33: { // int dim = 0; // auto tag1 = // rule_json.at("sample").at("tag_x1").at(1).get(); if (tag1 // != "null" && !tag1.empty()) { // dim++; // } // auto tag2 = // rule_json.at("sample").at("tag_x2").at(1).get(); if (tag2 // != "null" && !tag2.empty()) { // dim++; // } // auto tag3 = // rule_json.at("sample").at("tag_x3").at(1).get(); if (tag3 // != "null" && !tag3.empty()) { // dim++; // } // if (dim == 1) { // return std::make_unique(name, rule_json, ruleId, // 1, // padding_low, padding_up); // } // if (dim == 2) { // return std::make_unique(name, rule_json, ruleId, // 2, // padding_low, padding_up); // } // if (dim == 3) { // return std::make_unique(name, rule_json, ruleId, // 3, // padding_low, padding_up); // } // } break; // case 34: // return std::make_unique(name, rule_json, ruleId, padding_low, // padding_up); // break; // case 40: // // return std::make_unique(name, rule_json, ruleId); // break; // case 50: // return std::make_unique(name, rule_json, ruleId); // break; // case 61: // // return std::make_unique(name, rule_json, ruleId); // break; // case 71: // return std::make_unique(name, rule_json, ruleId, 1, // padding_low, padding_up); // break; // // case 100: // // return std::make_unique(name, rule_json, ruleId); // // break; // case 113: // return std::make_unique(name, rule_json, ruleId); // break; // case 112: // return std::make_unique(name, rule_json, ruleId); // break; // case 114: // return std::make_unique(name, rule_json, ruleId); // break; // // case 120: // // case 121: // // return std::make_unique(name, rule_json, ruleId, 1); // // break; // // case 122: // // return std::make_unique(name, rule_json, ruleId); // // break; // case 131: // return std::make_unique(name, rule_json, ruleId, 1); // break; // case 132: // return std::make_unique(name, rule_json, ruleId, 1); // break; default: d.Warn() << "undefined algorithm" << endl; return std::make_unique(name, rule_json, ruleId); } d.Warn() << "out of control flow" << endl; return std::make_unique(name, rule_json, ruleId); }