Virtual base-class for all rules. More...
#include <indiCompRules.hpp>
Public Types | |
typedef std::variant< bool, std::string > | boolorerr_t |
In-band error reporting type. More... | |
Public Member Functions | |
bool | isError (boolorerr_t rv) |
Check if returned value indicates an error. More... | |
virtual | ~indiCompRule () |
Virtual destructor. More... | |
void | priority (const rulePriority &p) |
Set priority of this rule. More... | |
const rulePriority & | priority () |
Get the rule priority. More... | |
void | message (const std::string &m) |
Set the message. More... | |
const std::string & | message () |
Get the message. More... | |
void | comparison (const ruleComparison &c) |
Set the comparison for this rule. More... | |
const ruleComparison & | comparison () |
Get the rule comparison. More... | |
virtual boolorerr_t | valid ()=0 |
Report whether the rule is valid as configured. More... | |
virtual bool | value ()=0 |
Get the value of this rule. More... | |
boolorerr_t | compTxt (const std::string &str1, const std::string &str2) |
Compare two strings. More... | |
boolorerr_t | compSw (const pcf::IndiElement::SwitchStateType &sw1, const pcf::IndiElement::SwitchStateType &sw2) |
Compare two switches. More... | |
boolorerr_t | compNum (const double &num1, const double &num2, const double &tol) |
Compare two numbers. More... | |
boolorerr_t | compBool (const bool &b1, const bool &b2) |
Compare two booleans. More... | |
Protected Attributes | |
rulePriority | m_priority {rulePriority::none} |
The reporting priority for this rule. More... | |
std::string | m_message |
The message used for notifications. More... | |
ruleComparison | m_comparison {ruleComparison::Eq} |
The comparison for this rule. More... | |
Virtual base-class for all rules.
Provides error handling and comparison functions. Derived classes must implement valid() and value().
Definition at line 137 of file indiCompRules.hpp.
typedef std::variant<bool, std::string> indiCompRule::boolorerr_t |
In-band error reporting type.
Definition at line 142 of file indiCompRules.hpp.
|
inlinevirtual |
Virtual destructor.
Definition at line 164 of file indiCompRules.hpp.
|
inline |
Get the rule comparison.
Definition at line 208 of file indiCompRules.hpp.
Referenced by ruleCompRule::ruleCompRule().
|
inline |
Set the comparison for this rule.
[in] | c | the new comparison |
Definition at line 198 of file indiCompRules.hpp.
Referenced by loadRuleConfig().
|
inline |
Compare two booleans.
[in] | b1 | the first bool to compare |
[in] | b2 | the second bool to compare |
Definition at line 331 of file indiCompRules.hpp.
Referenced by ruleCompRule::value().
|
inline |
Compare two numbers.
The comparison is (num1 comp num2), e.g. (num1 < num2). A tolerance is included for floating point equality.
[in] | num1 | the first number to compare |
[in] | num2 | the second number to compare |
[in] | tol | the tolerance for the comparison |
Definition at line 289 of file indiCompRules.hpp.
Referenced by numValRule::value(), and elCompNumRule::value().
|
inline |
Compare two switches.
Switch comparison can only be Eq or Neq.
[in] | sw1 | the first switch to compare |
[in] | sw2 | the first switch to compare |
Definition at line 260 of file indiCompRules.hpp.
Referenced by swValRule::value(), and elCompSwRule::value().
|
inline |
Compare two strings.
String comparison can only be Eq or Neq.
[in] | str1 | the first string to compare |
[in] | str2 | the second string to compare |
Definition at line 232 of file indiCompRules.hpp.
Referenced by txtValRule::value(), and elCompTxtRule::value().
|
inline |
Check if returned value indicates an error.
[in] | rv | the return value to check |
Definition at line 145 of file indiCompRules.hpp.
Referenced by ruleCompRule::valid(), numValRule::value(), txtValRule::value(), swValRule::value(), elCompNumRule::value(), elCompTxtRule::value(), elCompSwRule::value(), and ruleCompRule::value().
|
inline |
|
inline |
Set the message.
[in] | m | the new message |
Definition at line 183 of file indiCompRules.hpp.
Referenced by loadRuleConfig().
|
inline |
Get the rule priority.
Definition at line 177 of file indiCompRules.hpp.
|
inline |
Set priority of this rule.
[in] | p | the new priority |
Definition at line 168 of file indiCompRules.hpp.
Referenced by loadRuleConfig().
|
pure virtual |
Report whether the rule is valid as configured.
If not valid, the return value is a std::string with the reason. If valid, the return value is a bool set to true.
Implemented in ruleCompRule, twoPropRule, and onePropRule.
Referenced by ruleCompRule::valid().
|
pure virtual |
Get the value of this rule.
Implemented in ruleCompRule, elCompSwRule, elCompTxtRule, elCompNumRule, swValRule, txtValRule, and numValRule.
Referenced by audibleAlerts.personality.Operation::__str__(), audibleAlerts.personality.Transition::compare(), and ruleCompRule::value().
|
protected |
The comparison for this rule.
Definition at line 159 of file indiCompRules.hpp.
Referenced by comparison(), compBool(), compNum(), compSw(), and compTxt().
|
protected |
The message used for notifications.
Definition at line 156 of file indiCompRules.hpp.
Referenced by message().
|
protected |
The reporting priority for this rule.
Definition at line 153 of file indiCompRules.hpp.
Referenced by priority().