16#ifndef CPP_API_EXTENSIONS_SRC_SME_PATTERN_RULES_PATTERN_RULE_CONTAINER_H
17#define CPP_API_EXTENSIONS_SRC_SME_PATTERN_RULES_PATTERN_RULE_CONTAINER_H
26#include "sme/aqpp/foundation/callables/action.hpp"
28#include "sme/aqpp/print/sme_print.hpp"
70 SIM_DEBUG(
"Adding active rule '" << _name <<
"'");
73 SIM_DEBUG(
"Adding inactive rule '" << _name <<
"'");
78 SIM_ERROR(
"Rule already exists with name '" << _name <<
"'");
91 std::map< std::string, I_pattern_rule *>::iterator mit =
m_active_rules.find( _name);
111 std::map< std::string, I_pattern_rule *>::iterator mit =
m_inactive_rules.find( _name);
130 std::map< std::string, I_pattern_rule *>::iterator it;
133 SIM_DEBUG_NO_NEWLINE(
"rule " << it->first);
134 it->second->process_rule( _old_value, _new_value);
160 std::map< std::string, I_pattern_rule *>::iterator mit =
m_active_rules.find( _name);
162 return( mit->second);
174 std::map< std::string, I_pattern_rule *>::iterator mit =
m_inactive_rules.find( _name);
176 return( mit->second);
#define NULL
Definition: _null.h:24
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:38
tracks all rules of a single type for a particular target.
Definition: pattern_rule_container.h:38
void activate_rule(std::string _name)
activate rule by name.
Definition: pattern_rule_container.h:107
const std::map< std::string, I_pattern_rule * > & get_inactive_rules() const
return const reference to 'inactive' string map of pattern rules.
Definition: pattern_rule_container.h:194
I_pattern_rule * find_active_rule(std::string _name)
find rule in active list by name.
Definition: pattern_rule_container.h:158
std::map< std::string, I_pattern_rule * > m_inactive_rules
map of string to inactive rules.
Definition: pattern_rule_container.h:209
pattern_rule_container()
Construct a new pattern rule container object.
Definition: pattern_rule_container.h:45
bool add_rule(std::string _name, I_pattern_rule *_rule, bool _active=true)
Adds a descendant of I_pattern_rule by name to this container.
Definition: pattern_rule_container.h:64
std::map< std::string, I_pattern_rule * > m_active_rules
map of string to active rules.
Definition: pattern_rule_container.h:203
virtual ~pattern_rule_container()
Destroy the pattern rule container object.
Definition: pattern_rule_container.h:52
void deactivate_rule(std::string _name)
deactivate rule by name.
Definition: pattern_rule_container.h:87
void process_active_rules(uint64_t _old_value, uint64_t _new_value)
processes all active rules.
Definition: pattern_rule_container.h:128
I_pattern_rule * find_rule(std::string _name)
find rule in active or inactive list by name.
Definition: pattern_rule_container.h:144
const std::map< std::string, I_pattern_rule * > & get_active_rules() const
return const reference to 'active' string map of pattern rules.
Definition: pattern_rule_container.h:185
I_pattern_rule * find_inactive_rule(std::string _name)
find rule in inactive list by name.
Definition: pattern_rule_container.h:172
Definition: expression_vector.h:25