#pragma once #include "Rule.hpp" namespace Desktop::Rule { class CRuleEngine { public: CRuleEngine() = default; ~CRuleEngine() = default; void registerRule(SP&& rule); void unregisterRule(const std::string& name); void unregisterRule(const SP& rule); void updateAllRules(); void cleanExecRules(); void clearAllRules(); const std::vector>& rules(); private: std::vector> m_rules; }; SP ruleEngine(); }