16#ifndef CPP_API_EXTENSIONS_SRC_SME_PATTERN_RULES_I_PATTERN_RULE_H
17#define CPP_API_EXTENSIONS_SRC_SME_PATTERN_RULES_I_PATTERN_RULE_H
25class pattern_rule_container;
64 virtual void process_rule( std::uint64_t _old_value, std::uint64_t & _new_value) = 0;
#define _always_inline
Definition: _inline.h:30
Interface and base class for all notification rule types.
Definition: I_pattern_rule.h:32
bool m_is_active
stores is active
Definition: I_pattern_rule.h:44
_always_inline bool is_active()
reports if rule is active for processing.
Definition: I_pattern_rule.h:78
virtual void process_rule(std::uint64_t _old_value, std::uint64_t &_new_value)=0
process rule evaluation between old and new values.
I_pattern_rule()
Interface parent constructor for a new i pattern rule object.
Definition: I_pattern_rule.h:50
std::function< void()> m_lambda
placeholder for lambda
Definition: I_pattern_rule.h:38
void action(std::function< void()> _action)
Binds a void(void) lambda as the callback action to this rule.
Definition: I_pattern_rule.h:71
virtual ~I_pattern_rule()
Destroy the i pattern rule object.
Definition: I_pattern_rule.h:56
_always_inline bool is_bound()
has the lambda callback been bound.
Definition: I_pattern_rule.h:85
tracks all rules of a single type for a particular target.
Definition: pattern_rule_container.h:38
Definition: expression_vector.h:25