Horizon
package_rules.hpp
1 #pragma once
2 #include "nlohmann/json_fwd.hpp"
3 #include "rule_package_checks.hpp"
4 #include "rules/rules.hpp"
5 #include "util/uuid.hpp"
6 
7 namespace horizon {
8 using json = nlohmann::json;
9 
10 class PackageRules : public Rules {
11 public:
12  PackageRules();
13 
14  void load_from_json(const json &j);
15  RulesCheckResult check(RuleID id, const class Package *pkg, class RulesCheckCache &cache);
16  json serialize() const;
17  std::set<RuleID> get_rule_ids() const;
18  Rule *get_rule(RuleID id);
19  Rule *get_rule(RuleID id, const UUID &uu);
20  std::map<UUID, Rule *> get_rules(RuleID id);
21  void remove_rule(RuleID id, const UUID &uu);
22  Rule *add_rule(RuleID id);
23 
24 private:
25  RulePackageChecks rule_package_checks;
26 
27  RulesCheckResult check_package(const class Package *pkg);
28 };
29 } // namespace horizon
horizon::PackageRules
Definition: package_rules.hpp:10
nlohmann::json
basic_json<> json
default JSON class
Definition: json_fwd.hpp:61
horizon::RulesCheckCache
Definition: cache.hpp:43
horizon::Rules
Definition: rules.hpp:44
horizon::Rule
Definition: rule.hpp:26
horizon::Package
Definition: package.hpp:28
nlohmann::basic_json
a class to store JSON values
Definition: json.hpp:161
horizon::UUID
This class encapsulates a UUID and allows it to be uses as a value type.
Definition: uuid.hpp:16
horizon::RulesCheckResult
Definition: rules.hpp:31
horizon::RulePackageChecks
Definition: rule_package_checks.hpp:6