A rule base class for testing elements in two properties. More...
#include <indiCompRules.hpp>
Public Types | |
typedef std::variant< bool, std::string > | boolorerr_t |
In-band error reporting type. More... | |
Public Member Functions | |
twoPropRule ()=delete | |
twoPropRule (int type) | |
Constructor. You must provide the property type to construct a twoPropRule. More... | |
void | property1 (pcf::IndiProperty *property) |
Set the first property pointer. More... | |
const pcf::IndiProperty * | property1 () |
Get the first property pointer. More... | |
void | element1 (const std::string &el) |
Set the first element name. More... | |
const std::string & | element1 () |
Get the first element name. More... | |
void | property2 (pcf::IndiProperty *property) |
Set the second property pointer. More... | |
const pcf::IndiProperty * | property2 () |
Get the second property pointer. More... | |
void | element2 (const std::string &el) |
Set the second element name. More... | |
const std::string & | element2 () |
Get the second 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_property1 {nullptr} |
Pointer to the first property. More... | |
std::string | m_element1 |
The element name within the first property. More... | |
pcf::IndiProperty * | m_property2 {nullptr} |
Pointer to the second property. More... | |
std::string | m_element2 |
The element name within the second 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 elements in two properties.
Definition at line 458 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 twoPropRule.
Definition at line 479 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 first element name.
Definition at line 521 of file indiCompRules.hpp.
|
inline |
Set the first element name.
[in] | el | the new element name |
Definition at line 512 of file indiCompRules.hpp.
Referenced by loadRuleConfig().
|
inline |
Get the second element name.
Definition at line 565 of file indiCompRules.hpp.
|
inline |
Set the second element name.
[in] | el | the new element name |
Definition at line 556 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 first property pointer.
Definition at line 506 of file indiCompRules.hpp.
|
inline |
Set the first 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 487 of file indiCompRules.hpp.
Referenced by loadRuleConfig().
|
inline |
Get the second property pointer.
Definition at line 550 of file indiCompRules.hpp.
|
inline |
Set the second 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 531 of file indiCompRules.hpp.
Referenced by loadRuleConfig().
|
inlinevirtual |
Check if this rule is valid.
The rule is valid if both property pointers are not null, and the elements are contained within their respective properties.
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 577 of file indiCompRules.hpp.
Referenced by elCompNumRule::value(), elCompTxtRule::value(), and elCompSwRule::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 first property.
Definition at line 467 of file indiCompRules.hpp.
Referenced by element1(), valid(), elCompNumRule::value(), elCompTxtRule::value(), and elCompSwRule::value().
|
protected |
The element name within the second property.
Definition at line 471 of file indiCompRules.hpp.
Referenced by element2(), valid(), elCompNumRule::value(), elCompTxtRule::value(), and elCompSwRule::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 first property.
Definition at line 465 of file indiCompRules.hpp.
Referenced by property1(), valid(), elCompNumRule::value(), elCompTxtRule::value(), and elCompSwRule::value().
|
protected |
Pointer to the second property.
Definition at line 469 of file indiCompRules.hpp.
Referenced by property2(), valid(), elCompNumRule::value(), elCompTxtRule::value(), and elCompSwRule::value().
|
protected |
The property type, from pcf::IndiProperty::Type.
Definition at line 463 of file indiCompRules.hpp.
Referenced by property1(), and property2().