MCPcopy Create free account
hub / github.com/apache/nifi-minifi-cpp / compose_multi

Method compose_multi

extensions/expression-language/Expression.cpp:1637–1664  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1635}
1636
1637Expression Expression::compose_multi(const std::function<Value(const std::vector<Value> &)> fn, const std::vector<Expression> &args) const {
1638 auto result = make_dynamic(val_fn_);
1639 auto compose_expr_generator = sub_expr_generator_;
1640
1641 result.sub_expr_generator_ = [=](const Parameters &params) -> std::vector<Expression> {
1642 auto sub_exprs = compose_expr_generator(params);
1643 std::vector<Expression> out_exprs {};
1644 for (const auto &sub_expr : sub_exprs) {
1645 out_exprs.emplace_back(make_dynamic([=](const Parameters &params,
1646 const std::vector<Expression>& /*sub_exprs*/) {
1647 std::vector<Value> evaluated_args;
1648
1649 evaluated_args.emplace_back(sub_expr(params));
1650
1651 for (const auto &arg : args) {
1652 evaluated_args.emplace_back(arg(params));
1653 }
1654
1655 return fn(evaluated_args);
1656 }));
1657 }
1658 return out_exprs;
1659 };
1660
1661 result.is_multi_ = true;
1662
1663 return result;
1664}
1665
1666Expression Expression::make_aggregate(std::function<Value(const Parameters &params, const std::vector<Expression> &sub_exprs)> val_fn) const {
1667 auto sub_expr_generator = sub_expr_generator_;

Callers 1

Calls 1

make_dynamicFunction · 0.85

Tested by

no test coverage detected