A rule base class for testing an element in one property. More...
#include <indiCompRules.hpp>
Public Types | |
typedef std::variant< bool, std::string > | boolorerr_t |
In-band error reporting type. More... | |
Public Member Functions | |
onePropRule ()=delete | |
onePropRule (int type) | |
Constructor. You must provide the property type to construct a onePropRule. More... | |
void | property (pcf::IndiProperty *property) |
Set the property pointer. More... | |
const pcf::IndiProperty * | property () |
Get the property pointer. More... | |
void | element (const std::string &el) |
Set the element name. More... | |
const std::string & | element () |
Get the element name. More... | |
virtual boolorerr_t | valid () |
Check if this rule is valid. More... | |
bool | isError (boolorerr_t rv) |
Check if returned value indicates an error. 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 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 | |
int | m_type |
The property type, from pcf::IndiProperty::Type. More... | |
pcf::IndiProperty * | m_property {nullptr} |
Pointer to the property. More... | |
std::string | m_element |
The element name within the property. More... | |
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... | |
A rule base class for testing an element in one property.
Definition at line 366 of file indiCompRules.hpp.
|
inherited |
In-band error reporting type.
Definition at line 142 of file indiCompRules.hpp.
|
delete |
|
inlineexplicit |
Constructor. You must provide the property type to construct a onePropRule.
Definition at line 383 of file indiCompRules.hpp.
|
inlineinherited |
Get the rule comparison.
Definition at line 208 of file indiCompRules.hpp.
Referenced by ruleCompRule::ruleCompRule().
|
inlineinherited |
Set the comparison for this rule.
[in] | c | the new comparison |
Definition at line 198 of file indiCompRules.hpp.
Referenced by loadRuleConfig().
|
inlineinherited |
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().
|
inlineinherited |
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().
|
inlineinherited |
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().
|
inlineinherited |
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 |
Get the element name.
Definition at line 425 of file indiCompRules.hpp.
|
inline |
Set the element name.
[in] | el | the new element name |
Definition at line 416 of file indiCompRules.hpp.
Referenced by loadRuleConfig().
|
inlineinherited |
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().
|
inlineinherited |
|
inlineinherited |
Set the message.
[in] | m | the new message |
Definition at line 183 of file indiCompRules.hpp.
Referenced by loadRuleConfig().
|
inlineinherited |
Get the rule priority.
Definition at line 177 of file indiCompRules.hpp.
|
inlineinherited |
Set priority of this rule.
[in] | p | the new priority |
Definition at line 168 of file indiCompRules.hpp.
Referenced by loadRuleConfig().
|
inline |
Get the property pointer.
Definition at line 410 of file indiCompRules.hpp.
Referenced by property().
|
inline |
Set the property pointer.
mx::err::invalidarg | if property is nullptr |
mx::err::invalidconfig | if the supplied property has the wrong type |
[in] | property | the new property pointer |
Definition at line 391 of file indiCompRules.hpp.
Referenced by loadRuleConfig().
|
inlinevirtual |
Check if this rule is valid.
The rule is valid if the property pointer is not null, and the element is contained within the property.
If not valid, the return value is a std::string with the reason. If valid, the return value is a bool set to true.
Implements indiCompRule.
Definition at line 437 of file indiCompRules.hpp.
Referenced by numValRule::value(), txtValRule::value(), and swValRule::value().
|
pure virtualinherited |
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().
|
protectedinherited |
The comparison for this rule.
Definition at line 159 of file indiCompRules.hpp.
Referenced by indiCompRule::comparison(), indiCompRule::compBool(), indiCompRule::compNum(), indiCompRule::compSw(), and indiCompRule::compTxt().
|
protected |
The element name within the property.
Definition at line 375 of file indiCompRules.hpp.
Referenced by element(), valid(), numValRule::value(), txtValRule::value(), and swValRule::value().
|
protectedinherited |
The message used for notifications.
Definition at line 156 of file indiCompRules.hpp.
Referenced by indiCompRule::message().
|
protectedinherited |
The reporting priority for this rule.
Definition at line 153 of file indiCompRules.hpp.
Referenced by indiCompRule::priority().
|
protected |
Pointer to the property.
Definition at line 373 of file indiCompRules.hpp.
Referenced by property(), valid(), txtValRule::value(), and swValRule::value().
|
protected |
The property type, from pcf::IndiProperty::Type.
Definition at line 371 of file indiCompRules.hpp.
Referenced by property().