ppap4lmp  0.7.2
fil_comparison.h
Go to the documentation of this file.
1 
9 #ifndef FIL_COMPARISON_H
10 #define FIL_COMPARISON_H
11 
12 #include <filters/filter.h>
13 
16 
35 class FilComparison : public Filter {
60  const Str &oper,
61  const Json &rval);
88  const bool check_if_pass_data_elem(
89  const Json &elem_in_data,
90  const CompareFuncs &compare_func_list);
91  protected:
93  virtual void compute_impl(
94  Json &data,
95  JsonToVoidFunc check_required_keys,
96  JsonToBoolFunc check_optional_keys) override;
97  public:
113  const std::tuple<Str,Str,Json> &compare_expr_);
128  const Vec<std::tuple<Str,Str,Json>> &compare_expr_list_);
129  virtual ~FilComparison() = default;
130 };
131 
132 #endif
FilComparison(const std::tuple< Str, Str, Json > &compare_expr_)
Constructor of FilComparison class with one criterion.
virtual void compute_impl(Json &data, JsonToVoidFunc check_required_keys, JsonToBoolFunc check_optional_keys) override
This method overrides Updater::compute_impl.
This file has a definition of Filter class, which is a subclass of Updater class. ...
Filter removes elements from array Element::data if the elements fail user-defined criteria...
Definition: filter.h:25
std::function< bool(const Json &)> JsonToBoolFunc
An alias for a function accepts a Json object and returns a bool.
Definition: updater.h:20
FilComparison applies a filter defined by comparison operators.
std::string Str
Str is an alias for string.
Definition: std.h:21
const JsonToBoolFunc make_compare_func(const Str &oper, const Json &rval)
Make a JsonToBoolFunc object from a comparison operator and a right side value.
nlohmann::json Json
Json is an alias for nlohmann::json.
Definition: json.h:22
std::vector< T > Vec
Vec is an alias for vector (same as list in Python).
Definition: std.h:27
const CompareFuncs make_compare_func_list()
Convert tuples in compare_expr_list to pairs of a string key and JsonToBoolFunc.
const bool check_if_pass_data_elem(const Json &elem_in_data, const CompareFuncs &compare_func_list)
Check if an element in data array can pass this filter.
Vec< std::tuple< Str, Str, Json > > compare_expr_list
std::function< void(const Json &)> JsonToVoidFunc
An alias for a function accepts a Json object.
Definition: updater.h:18
Vec< std::pair< Str, JsonToBoolFunc > > CompareFuncs
An alias for Vec containing comparing functions.