Compare two elements based on their switch values. More...
#include <indiCompRules.hpp>
Public Types | |
typedef std::variant< bool, std::string > | boolorerr_t |
In-band error reporting type. More... | |
Public Member Functions | |
elCompSwRule () | |
Default c'tor. More... | |
virtual bool | value () |
Get the value of this rule. 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... | |
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... | |
Static Public Attributes | |
static constexpr char | name [] = "elCompSw" |
Name of this rule, used by config system. 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... | |
Compare two elements based on their switch values.
Definition at line 957 of file indiCompRules.hpp.
|
inherited |
In-band error reporting type.
Definition at line 142 of file indiCompRules.hpp.
|
inline |
Default c'tor.
Definition at line 966 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 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().
|
inlineinherited |
Get the first element name.
Definition at line 521 of file indiCompRules.hpp.
|
inlineinherited |
Set the first element name.
[in] | el | the new element name |
Definition at line 512 of file indiCompRules.hpp.
Referenced by loadRuleConfig().
|
inlineinherited |
Get the second element name.
Definition at line 565 of file indiCompRules.hpp.
|
inlineinherited |
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(), 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().
|
inlineinherited |
Get the first property pointer.
Definition at line 506 of file indiCompRules.hpp.
|
inlineinherited |
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().
|
inlineinherited |
Get the second property pointer.
Definition at line 550 of file indiCompRules.hpp.
|
inlineinherited |
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().
|
inlinevirtualinherited |
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 value().
|
inlinevirtual |
Get the value of this rule.
First checks if the rule is currently valid. The performs the comparison and returns the result.
mx::err::invalidconfig | if the rule is not currently valid |
mx::err::invalidconfig | on an error from the comparison |
Implements indiCompRule.
Definition at line 978 of file indiCompRules.hpp.
Referenced by audibleAlerts.personality.Operation::__str__(), and audibleAlerts.personality.Transition::compare().
|
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().
|
protectedinherited |
The element name within the first property.
Definition at line 467 of file indiCompRules.hpp.
Referenced by twoPropRule::element1(), twoPropRule::valid(), elCompNumRule::value(), elCompTxtRule::value(), and value().
|
protectedinherited |
The element name within the second property.
Definition at line 471 of file indiCompRules.hpp.
Referenced by twoPropRule::element2(), twoPropRule::valid(), elCompNumRule::value(), elCompTxtRule::value(), and 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().
|
protectedinherited |
Pointer to the first property.
Definition at line 465 of file indiCompRules.hpp.
Referenced by twoPropRule::property1(), twoPropRule::valid(), elCompNumRule::value(), elCompTxtRule::value(), and value().
|
protectedinherited |
Pointer to the second property.
Definition at line 469 of file indiCompRules.hpp.
Referenced by twoPropRule::property2(), twoPropRule::valid(), elCompNumRule::value(), elCompTxtRule::value(), and value().
|
protectedinherited |
The property type, from pcf::IndiProperty::Type.
Definition at line 463 of file indiCompRules.hpp.
Referenced by twoPropRule::property1(), and twoPropRule::property2().
|
staticconstexpr |
Name of this rule, used by config system.
Definition at line 963 of file indiCompRules.hpp.
Referenced by loadRuleConfig().