API
 
Loading...
Searching...
No Matches
multiSwitchComboRule Struct Reference

Build and compare a switch-name combination against a target switch vector. More...

#include <indiCompRules.hpp>

Inheritance diagram for multiSwitchComboRule:
Inheritance graph
Collaboration diagram for multiSwitchComboRule:
Collaboration graph

Public Types

typedef std::variant< bool, std::string > boolorerr_t
 In-band error reporting type.
 

Public Member Functions

 multiSwitchComboRule ()
 Default c'tor.
 
virtual ruleComparison defaultComparison () const
 Get the default comparison for this rule type.
 
void ruleName (const std::string &ruleName)
 Set the rule name used in diagnostics.
 
const std::string & ruleName ()
 Get the configured rule name.
 
void property (pcf::IndiProperty *property, const std::string &propertyKey)
 Append one source switch property.
 
const pcf::IndiProperty * property (size_t n)
 Get a source switch property by index.
 
const std::string & propertyKey (size_t n)
 Get a source property key by index.
 
size_t numSwitches ()
 Get the number of configured source switch properties.
 
void format (const std::string &format)
 Set the literal format string for the source switch names.
 
const std::string & format ()
 Get the literal format string.
 
void targetProperty (pcf::IndiProperty *property)
 Set the target switch property.
 
const pcf::IndiProperty * targetProperty ()
 Get the target switch property.
 
void targetPropertyKey (const std::string &propertyKey)
 Set the target property key used in diagnostics.
 
const std::string & targetPropertyKey ()
 Get the target property key used in diagnostics.
 
virtual boolorerr_t valid ()
 Check if this rule is valid as configured.
 
virtual bool value ()
 Get the value of this rule.
 
virtual bool popRuntimeDiagnostic (std::string &diagnostic)
 Pop one pending runtime diagnostic, if any.
 
bool isError (boolorerr_t rv)
 Check if returned value indicates an error.
 
void priority (const rulePriority &p, double delay=-1)
 Set priority of this rule.
 
const rulePrioritypriority ()
 Get the rule priority.
 
void message (const std::string &m)
 Set the message.
 
const std::string & message (bool settime=false)
 Get the message.
 
const timespec & lastMsg ()
 
double sinceLastMsg ()
 Get the time since the last message.
 
bool timeToSend ()
 Check if it's time to send a message.
 
void messageDelay (double md)
 Set the message delay.
 
double messageDelay ()
 Get the message delay.
 
void messageCount (int mc)
 Set the message count.
 
int messageCount ()
 Get the message count.
 
int incMessageCount ()
 Increment the message count.
 
void comparison (const ruleComparison &c)
 Set the comparison for this rule.
 
const ruleComparisoncomparison ()
 Get the rule comparison.
 
boolorerr_t compTxt (const std::string &str1, const std::string &str2)
 Compare two strings.
 
boolorerr_t compSw (const pcf::IndiElement::SwitchStateType &sw1, const pcf::IndiElement::SwitchStateType &sw2)
 Compare two switches.
 
boolorerr_t compNum (const double &num1, const double &num2, const double &tol)
 Compare two numbers.
 
boolorerr_t compBool (const bool &b1, const bool &b2)
 Compare two booleans.
 

Static Public Attributes

static constexpr char name [] = "multiSwitchCombo"
 Name of this rule, used by config system.
 
static constexpr double default_info_msg_delay = 0
 
static constexpr double default_caution_msg_delay = 60
 
static constexpr double default_warning_msg_delay = 30
 
static constexpr double default_alert_msg_delay = 5
 

Protected Member Functions

size_t formatPlaceholders (bool &invalidBraces) const
 Count plain {} placeholders and reject any other brace usage.
 
std::string activeName (pcf::IndiProperty *property, const std::string &propertyKey, bool &multiOnLatched)
 Resolve the active element name for a switch property.
 
std::string formatCombo (const std::vector< std::string > &values) const
 Apply literal {} substitution to build the comparison string.
 

Protected Attributes

std::string m_ruleName
 The configuration-section name of this rule, used in diagnostics.
 
std::vector< pcf::IndiProperty * > m_properties
 The source switch properties in format-substitution order.
 
std::vector< std::string > m_propertyKeys
 The config keys for the source switch properties, used in diagnostics.
 
std::vector< bool > m_multiOn
 Per-source latch state used to avoid repeated multi-On diagnostics.
 
std::string m_format
 The literal format string used to combine source switch names.
 
pcf::IndiProperty * m_targetProperty { nullptr }
 The target switch property whose active element name is compared.
 
std::string m_targetPropertyKey
 The config key for the target property, used in diagnostics.
 
bool m_targetMultiOn { false }
 Latch state used to avoid repeated target multi-On diagnostics.
 
std::vector< std::string > m_pendingDiagnostics
 Runtime diagnostics that should be logged without failing evaluation.
 
rulePriority m_priority { rulePriority::none }
 The reporting priority for this rule.
 
std::string m_message
 The message used for notifications.
 
timespec m_lastMsg { 0, 0 }
 Time the message was last sent.
 
double m_messageDelay { 0 }
 Delay between sending messages.
 
int m_messageCount { 0 }
 Number of times the message has been sent.
 
ruleComparison m_comparison { ruleComparison::Eq }
 The comparison for this rule.
 

Detailed Description

Build and compare a switch-name combination against a target switch vector.

This rule reads the currently active element name from each source switch property, combines those names with a literal {} placeholder format string, and compares the result against the currently active element name in a target switch property.

Definition at line 1307 of file indiCompRules.hpp.

Member Typedef Documentation

◆ boolorerr_t

typedef std::variant<bool, std::string> indiCompRule::boolorerr_t
inherited

In-band error reporting type.

Definition at line 187 of file indiCompRules.hpp.

Constructor & Destructor Documentation

◆ multiSwitchComboRule()

multiSwitchComboRule::multiSwitchComboRule ( )
inline

Default c'tor.

Changes the default comparison to Neq for mismatch detection.

Definition at line 1454 of file indiCompRules.hpp.

References indiCompRule::comparison(), and defaultComparison().

Member Function Documentation

◆ activeName()

std::string multiSwitchComboRule::activeName ( pcf::IndiProperty *  property,
const std::string &  propertyKey,
bool &  multiOnLatched 
)
inlineprotected

Resolve the active element name for a switch property.

Parameters
[in]propertythe property to inspect
[in]propertyKeythe config key for diagnostics
multiOnLatched[in/out] the multi-On diagnostic latch

Definition at line 1374 of file indiCompRules.hpp.

References active, m_pendingDiagnostics, m_ruleName, propertyKey(), and ruleName().

Referenced by value().

◆ comparison() [1/2]

const ruleComparison & indiCompRule::comparison ( )
inlineinherited

Get the rule comparison.

Returns
the current rule comparison

Definition at line 387 of file indiCompRules.hpp.

References indiCompRule::m_comparison.

Referenced by multiSwitchComboRule(), and ruleCompRule::ruleCompRule().

◆ comparison() [2/2]

void indiCompRule::comparison ( const ruleComparison c)
inlineinherited

Set the comparison for this rule.

Parameters
[in]cthe new comparison

Definition at line 377 of file indiCompRules.hpp.

References indiCompRule::m_comparison.

Referenced by libXWCTest::stateRuleEngineTest::SCENARIO(), SCENARIO(), SCENARIO(), SCENARIO(), and libXWCTest::stateRuleEngineTest::SCENARIO().

◆ compBool()

boolorerr_t indiCompRule::compBool ( const bool &  b1,
const bool &  b2 
)
inlineinherited

Compare two booleans.

Returns
true if the comparison is true
false if the comparison is false
std::string with error message if the comparison is not valid
Parameters
[in]b1the first bool to compare
[in]b2the second bool to compare

Definition at line 533 of file indiCompRules.hpp.

References And, Eq, Imply, indiCompRule::m_comparison, Nand, Neq, Nimply, Nor, and Or.

Referenced by ruleCompRule::value().

◆ compNum()

boolorerr_t indiCompRule::compNum ( const double &  num1,
const double &  num2,
const double &  tol 
)
inlineinherited

Compare two numbers.

The comparison is (num1 comp num2), e.g. (num1 < num2). A tolerance is included for floating point equality.

Returns
true if the comparison is true
false if the comparison is false
std::string with error message if the comparison is not valid
Parameters
[in]num1the first number to compare
[in]num2the second number to compare
[in]tolthe tolerance for the comparison

Definition at line 483 of file indiCompRules.hpp.

References Eq, Gt, GtEq, Lt, LtEq, indiCompRule::m_comparison, and Neq.

Referenced by numValRule::value(), timeDiffRule::value(), and elCompNumRule::value().

◆ compSw()

boolorerr_t indiCompRule::compSw ( const pcf::IndiElement::SwitchStateType &  sw1,
const pcf::IndiElement::SwitchStateType &  sw2 
)
inlineinherited

Compare two switches.

Switch comparison can only be Eq or Neq.

Returns
true if the comparison is true
false if the comparison is false
std::string with error message if the comparison is not valid
Parameters
[in]sw1the first switch to compare
[in]sw2the first switch to compare

Definition at line 452 of file indiCompRules.hpp.

References Eq, indiCompRule::m_comparison, and Neq.

Referenced by swValRule::value(), and elCompSwRule::value().

◆ compTxt()

boolorerr_t indiCompRule::compTxt ( const std::string &  str1,
const std::string &  str2 
)
inlineinherited

Compare two strings.

String comparison can only be Eq or Neq.

Returns
true if the comparison is true
false if the comparison is false
std::string with error message if the comparison is not valid
Parameters
[in]str1the first string to compare
[in]str2the second string to compare

Definition at line 422 of file indiCompRules.hpp.

References Eq, indiCompRule::m_comparison, and Neq.

Referenced by txtValRule::value(), elCompTxtRule::value(), and value().

◆ defaultComparison()

virtual ruleComparison multiSwitchComboRule::defaultComparison ( ) const
inlinevirtual

Get the default comparison for this rule type.

Returns
ruleComparison::Neq

Reimplemented from indiCompRule.

Definition at line 1463 of file indiCompRules.hpp.

References Neq.

Referenced by multiSwitchComboRule().

◆ format() [1/2]

const std::string & multiSwitchComboRule::format ( )
inline

Get the literal format string.

Returns
the current value of m_format

Definition at line 1550 of file indiCompRules.hpp.

References m_format.

Referenced by format().

◆ format() [2/2]

void multiSwitchComboRule::format ( const std::string &  format)
inline

Set the literal format string for the source switch names.

Parameters
[in]formatthe literal {} placeholder format string

Definition at line 1541 of file indiCompRules.hpp.

References format(), and m_format.

Referenced by loadRuleConfig(), libXWCTest::stateRuleEngineTest::SCENARIO(), and libXWCTest::stateRuleEngineTest::SCENARIO().

◆ formatCombo()

std::string multiSwitchComboRule::formatCombo ( const std::vector< std::string > &  values) const
inlineprotected

Apply literal {} substitution to build the comparison string.

Parameters
[in]valuesthe source switch names in order

Definition at line 1428 of file indiCompRules.hpp.

References m_format.

Referenced by value().

◆ formatPlaceholders()

size_t multiSwitchComboRule::formatPlaceholders ( bool &  invalidBraces) const
inlineprotected

Count plain {} placeholders and reject any other brace usage.

Parameters
[out]invalidBracestrue when unsupported brace syntax is present

Definition at line 1343 of file indiCompRules.hpp.

References m_format.

Referenced by valid().

◆ incMessageCount()

int indiCompRule::incMessageCount ( )
inlineinherited

Increment the message count.

Definition at line 364 of file indiCompRules.hpp.

References indiCompRule::m_messageCount.

◆ isError()

bool indiCompRule::isError ( boolorerr_t  rv)
inlineinherited

Check if returned value indicates an error.

Parameters
[in]rvthe return value to check

Definition at line 190 of file indiCompRules.hpp.

Referenced by loadRuleConfig(), ruleCompRule::valid(), numValRule::value(), txtValRule::value(), swValRule::value(), timeDiffRule::value(), elCompNumRule::value(), elCompTxtRule::value(), elCompSwRule::value(), value(), and ruleCompRule::value().

◆ lastMsg()

const timespec & indiCompRule::lastMsg ( )
inlineinherited

Definition at line 298 of file indiCompRules.hpp.

References indiCompRule::m_lastMsg.

◆ message() [1/2]

const std::string & indiCompRule::message ( bool  settime = false)
inlineinherited

Get the message.

Optionally sets the message time to now.

Returns
the current message
Parameters
settimeIf true m_lastMsg is set to now

Definition at line 285 of file indiCompRules.hpp.

References indiCompRule::m_lastMsg, and indiCompRule::m_message.

◆ message() [2/2]

void indiCompRule::message ( const std::string &  m)
inlineinherited

Set the message.

Parameters
[in]mthe new message

Definition at line 276 of file indiCompRules.hpp.

References indiCompRule::m_message.

Referenced by libXWCTest::stateRuleEngineTest::TEST_CASE().

◆ messageCount() [1/2]

int indiCompRule::messageCount ( )
inlineinherited

Get the message count.

Definition at line 371 of file indiCompRules.hpp.

References indiCompRule::m_messageCount.

◆ messageCount() [2/2]

void indiCompRule::messageCount ( int  mc)
inlineinherited

Set the message count.

Parameters
[in]mcthe new message count

Definition at line 358 of file indiCompRules.hpp.

References indiCompRule::m_messageCount.

Referenced by libXWCTest::stateRuleEngineTest::TEST_CASE().

◆ messageDelay() [1/2]

double indiCompRule::messageDelay ( )
inlineinherited

Get the message delay.

Definition at line 352 of file indiCompRules.hpp.

References indiCompRule::m_messageDelay.

◆ messageDelay() [2/2]

void indiCompRule::messageDelay ( double  md)
inlineinherited

Set the message delay.

Parameters
[in]mdthe new message delay

Definition at line 346 of file indiCompRules.hpp.

References indiCompRule::m_messageDelay.

◆ numSwitches()

size_t multiSwitchComboRule::numSwitches ( )
inline

Get the number of configured source switch properties.

Returns
the current number of source properties

Definition at line 1535 of file indiCompRules.hpp.

References m_properties.

Referenced by libXWCTest::stateRuleEngineTest::SCENARIO().

◆ popRuntimeDiagnostic()

virtual bool multiSwitchComboRule::popRuntimeDiagnostic ( std::string &  diagnostic)
inlinevirtual

Pop one pending runtime diagnostic, if any.

Parameters
[out]diagnosticthe next pending diagnostic message

Reimplemented from indiCompRule.

Definition at line 1704 of file indiCompRules.hpp.

References m_pendingDiagnostics.

Referenced by libXWCTest::stateRuleEngineTest::SCENARIO().

◆ priority() [1/2]

const rulePriority & indiCompRule::priority ( )
inlineinherited

Get the rule priority.

Returns
the current rule priority

Definition at line 270 of file indiCompRules.hpp.

References indiCompRule::m_priority.

◆ priority() [2/2]

void indiCompRule::priority ( const rulePriority p,
double  delay = -1 
)
inlineinherited

Set priority of this rule.

Also sets the message delay, to default for priority if not set.

Parameters
[in]pthe new priority
[in]delay[opt] the message delay, if < 0 the default is used

Definition at line 234 of file indiCompRules.hpp.

References alert, caution, indiCompRule::default_alert_msg_delay, indiCompRule::default_caution_msg_delay, indiCompRule::default_info_msg_delay, indiCompRule::default_warning_msg_delay, info, indiCompRule::m_messageDelay, indiCompRule::m_priority, and warning.

Referenced by libXWCTest::stateRuleEngineTest::TEST_CASE().

◆ property() [1/2]

void multiSwitchComboRule::property ( pcf::IndiProperty *  property,
const std::string &  propertyKey 
)
inline

Append one source switch property.

Parameters
[in]propertythe next source switch property
[in]propertyKeythe config key for the source property

Definition at line 1484 of file indiCompRules.hpp.

References m_multiOn, m_properties, m_propertyKeys, property(), and propertyKey().

Referenced by loadRuleConfig(), property(), libXWCTest::stateRuleEngineTest::SCENARIO(), libXWCTest::stateRuleEngineTest::SCENARIO(), and targetProperty().

◆ property() [2/2]

const pcf::IndiProperty * multiSwitchComboRule::property ( size_t  n)
inline

Get a source switch property by index.

Returns
the current source switch property at index n
Parameters
[in]nthe zero-based source property index

Definition at line 1507 of file indiCompRules.hpp.

References m_properties.

◆ propertyKey()

const std::string & multiSwitchComboRule::propertyKey ( size_t  n)
inline

Get a source property key by index.

Returns
the configured property key at index n
Parameters
[in]nthe zero-based source property index

Definition at line 1521 of file indiCompRules.hpp.

References m_propertyKeys.

Referenced by activeName(), property(), libXWCTest::stateRuleEngineTest::SCENARIO(), and targetPropertyKey().

◆ ruleName() [1/2]

const std::string & multiSwitchComboRule::ruleName ( )
inline

Get the configured rule name.

Returns
the current value of m_ruleName

Definition at line 1478 of file indiCompRules.hpp.

References m_ruleName.

Referenced by activeName(), and ruleName().

◆ ruleName() [2/2]

void multiSwitchComboRule::ruleName ( const std::string &  ruleName)
inline

Set the rule name used in diagnostics.

Parameters
[in]ruleNamethe config-section name of this rule

Definition at line 1469 of file indiCompRules.hpp.

References m_ruleName, and ruleName().

Referenced by loadRuleConfig(), libXWCTest::stateRuleEngineTest::SCENARIO(), and libXWCTest::stateRuleEngineTest::SCENARIO().

◆ sinceLastMsg()

double indiCompRule::sinceLastMsg ( )
inlineinherited

Get the time since the last message.

Definition at line 304 of file indiCompRules.hpp.

References indiCompRule::m_lastMsg.

Referenced by indiCompRule::timeToSend().

◆ targetProperty() [1/2]

const pcf::IndiProperty * multiSwitchComboRule::targetProperty ( )
inline

Get the target switch property.

Returns
the current target switch property

Definition at line 1575 of file indiCompRules.hpp.

References m_targetProperty.

◆ targetProperty() [2/2]

void multiSwitchComboRule::targetProperty ( pcf::IndiProperty *  property)
inline

Set the target switch property.

Parameters
[in]propertythe target switch property

Definition at line 1556 of file indiCompRules.hpp.

References m_targetProperty, and property().

Referenced by loadRuleConfig(), libXWCTest::stateRuleEngineTest::SCENARIO(), and libXWCTest::stateRuleEngineTest::SCENARIO().

◆ targetPropertyKey() [1/2]

const std::string & multiSwitchComboRule::targetPropertyKey ( )
inline

Get the target property key used in diagnostics.

Returns
the current value of m_targetPropertyKey

Definition at line 1590 of file indiCompRules.hpp.

References m_targetPropertyKey.

◆ targetPropertyKey() [2/2]

void multiSwitchComboRule::targetPropertyKey ( const std::string &  propertyKey)
inline

Set the target property key used in diagnostics.

Parameters
[in]propertyKeythe config key for the target property

Definition at line 1581 of file indiCompRules.hpp.

References m_targetPropertyKey, and propertyKey().

Referenced by loadRuleConfig(), libXWCTest::stateRuleEngineTest::SCENARIO(), and libXWCTest::stateRuleEngineTest::SCENARIO().

◆ timeToSend()

bool indiCompRule::timeToSend ( )
inlineinherited

Check if it's time to send a message.

If the message delay is <= 0, this is based on message count (i.e. has it been sent). Otherwise it's based on the time since last sent

Definition at line 319 of file indiCompRules.hpp.

References indiCompRule::m_messageCount, indiCompRule::m_messageDelay, and indiCompRule::sinceLastMsg().

◆ valid()

virtual boolorerr_t multiSwitchComboRule::valid ( )
inlinevirtual

Check if this rule is valid as configured.

Implements indiCompRule.

Definition at line 1596 of file indiCompRules.hpp.

References Eq, formatPlaceholders(), indiCompRule::m_comparison, m_multiOn, m_properties, m_propertyKeys, m_targetProperty, m_targetPropertyKey, and Neq.

Referenced by loadRuleConfig(), and value().

◆ value()

virtual bool multiSwitchComboRule::value ( )
inlinevirtual

Get the value of this rule.

First checks if the rule is currently valid. Then performs the combo-name comparison and returns the result.

Returns
the value of the comparison, true or false
Exceptions
mx::err::invalidconfigif the rule is not currently valid
mx::err::invalidconfigon an error from the comparison

Implements indiCompRule.

Definition at line 1671 of file indiCompRules.hpp.

References activeName(), indiCompRule::compTxt(), formatCombo(), indiCompRule::isError(), m_multiOn, m_properties, m_propertyKeys, m_targetMultiOn, m_targetProperty, m_targetPropertyKey, and valid().

Referenced by audibleAlerts.personality.Operation::__str__(), audibleAlerts.personality.Transition::compare(), libXWCTest::stateRuleEngineTest::SCENARIO(), and libXWCTest::stateRuleEngineTest::SCENARIO().

Member Data Documentation

◆ default_alert_msg_delay

constexpr double indiCompRule::default_alert_msg_delay = 5
staticconstexprinherited

Definition at line 198 of file indiCompRules.hpp.

Referenced by indiCompRule::priority().

◆ default_caution_msg_delay

constexpr double indiCompRule::default_caution_msg_delay = 60
staticconstexprinherited

Definition at line 196 of file indiCompRules.hpp.

Referenced by indiCompRule::priority().

◆ default_info_msg_delay

constexpr double indiCompRule::default_info_msg_delay = 0
staticconstexprinherited

Definition at line 195 of file indiCompRules.hpp.

Referenced by indiCompRule::priority().

◆ default_warning_msg_delay

constexpr double indiCompRule::default_warning_msg_delay = 30
staticconstexprinherited

Definition at line 197 of file indiCompRules.hpp.

Referenced by indiCompRule::priority().

◆ m_comparison

ruleComparison indiCompRule::m_comparison { ruleComparison::Eq }
protectedinherited

◆ m_format

std::string multiSwitchComboRule::m_format
protected

The literal format string used to combine source switch names.

Definition at line 1328 of file indiCompRules.hpp.

Referenced by format(), format(), formatCombo(), and formatPlaceholders().

◆ m_lastMsg

timespec indiCompRule::m_lastMsg { 0, 0 }
protectedinherited

Time the message was last sent.

Definition at line 207 of file indiCompRules.hpp.

Referenced by indiCompRule::lastMsg(), indiCompRule::message(), and indiCompRule::sinceLastMsg().

◆ m_message

std::string indiCompRule::m_message
protectedinherited

The message used for notifications.

Definition at line 205 of file indiCompRules.hpp.

Referenced by indiCompRule::message(), and indiCompRule::message().

◆ m_messageCount

int indiCompRule::m_messageCount { 0 }
protectedinherited

Number of times the message has been sent.

Definition at line 211 of file indiCompRules.hpp.

Referenced by indiCompRule::incMessageCount(), indiCompRule::messageCount(), indiCompRule::messageCount(), and indiCompRule::timeToSend().

◆ m_messageDelay

double indiCompRule::m_messageDelay { 0 }
protectedinherited

Delay between sending messages.

Definition at line 209 of file indiCompRules.hpp.

Referenced by indiCompRule::messageDelay(), indiCompRule::messageDelay(), indiCompRule::priority(), and indiCompRule::timeToSend().

◆ m_multiOn

std::vector<bool> multiSwitchComboRule::m_multiOn
protected

Per-source latch state used to avoid repeated multi-On diagnostics.

Definition at line 1325 of file indiCompRules.hpp.

Referenced by property(), valid(), and value().

◆ m_pendingDiagnostics

std::vector<std::string> multiSwitchComboRule::m_pendingDiagnostics
protected

Runtime diagnostics that should be logged without failing evaluation.

Definition at line 1340 of file indiCompRules.hpp.

Referenced by activeName(), and popRuntimeDiagnostic().

◆ m_priority

rulePriority indiCompRule::m_priority { rulePriority::none }
protectedinherited

The reporting priority for this rule.

Definition at line 202 of file indiCompRules.hpp.

Referenced by indiCompRule::priority(), and indiCompRule::priority().

◆ m_properties

std::vector<pcf::IndiProperty *> multiSwitchComboRule::m_properties
protected

The source switch properties in format-substitution order.

Definition at line 1319 of file indiCompRules.hpp.

Referenced by numSwitches(), property(), property(), valid(), and value().

◆ m_propertyKeys

std::vector<std::string> multiSwitchComboRule::m_propertyKeys
protected

The config keys for the source switch properties, used in diagnostics.

Definition at line 1322 of file indiCompRules.hpp.

Referenced by property(), propertyKey(), valid(), and value().

◆ m_ruleName

std::string multiSwitchComboRule::m_ruleName
protected

The configuration-section name of this rule, used in diagnostics.

Definition at line 1316 of file indiCompRules.hpp.

Referenced by activeName(), ruleName(), and ruleName().

◆ m_targetMultiOn

bool multiSwitchComboRule::m_targetMultiOn { false }
protected

Latch state used to avoid repeated target multi-On diagnostics.

Definition at line 1337 of file indiCompRules.hpp.

Referenced by value().

◆ m_targetProperty

pcf::IndiProperty* multiSwitchComboRule::m_targetProperty { nullptr }
protected

The target switch property whose active element name is compared.

Definition at line 1331 of file indiCompRules.hpp.

Referenced by targetProperty(), targetProperty(), valid(), and value().

◆ m_targetPropertyKey

std::string multiSwitchComboRule::m_targetPropertyKey
protected

The config key for the target property, used in diagnostics.

Definition at line 1334 of file indiCompRules.hpp.

Referenced by targetPropertyKey(), targetPropertyKey(), valid(), and value().

◆ name

constexpr char multiSwitchComboRule::name[] = "multiSwitchCombo"
staticconstexpr

Name of this rule, used by config system.

Definition at line 1312 of file indiCompRules.hpp.

Referenced by loadRuleConfig().


The documentation for this struct was generated from the following file: