icinga2/lib/config
Julian Brost 1c066fc02e Simplify NamespaceValue class hierarchy to one struct without member functions
This commit removes EmbeddedNamespaceValue and ConstEmbeddedNamespaceValue and
reduces NamespaceValue down to a simple struct without inheritance or member
functions. The code from these clases is inlined into the Namespace class. The
class hierarchy determining whether a value is const is moved to an attribute
of NamespaceValue.

This is done in preparation for changes to the locking in the Namespace class.
Currently, it relies on a recursive mutex. In the future, a shared mutex
(read/write lock) should be used instead, which cannot allow recursive locking
(without failing or risk deadlocking on lock upgrades). With this change, all
operations requiring a lock for one operation are within one function, no
recursive locking is not needed any more.
2023-01-19 17:55:11 +01:00
..
CMakeLists.txt Separately handle apply rules targetting only specific parent objects 2022-10-28 14:27:53 +02:00
activationcontext.cpp Replace Copyright header with a short version, part I 2019-02-25 14:48:22 +01:00
activationcontext.hpp Replace Copyright header with a short version, part I 2019-02-25 14:48:22 +01:00
applyrule-targeted.cpp Avoid evaluating the same filter twice for the same target 2022-11-04 10:15:22 +01:00
applyrule.cpp ApplyRule: Make `m_HasMatches` atomic 2022-11-28 14:13:58 +01:00
applyrule.hpp ApplyRule: Make `m_HasMatches` atomic 2022-11-28 14:13:58 +01:00
config_lexer.ll Make ConfigCompiler#m_LexBuffer a String 2020-01-21 13:38:59 +01:00
config_parser.yy ApplyRule::GetTargetTypes(): return by const ref not to malloc() 2022-10-19 13:43:51 +02:00
configcompiler.cpp CONTEXT: use << everywhere to unify usages 2022-11-30 11:06:51 +01:00
configcompiler.hpp Use std::mutex, not boost::mutex 2021-02-03 09:54:57 +01:00
configcompilercontext.cpp icinga2 daemon -C: write icinga2.debug only if --dump-objects given 2022-11-23 12:54:33 +01:00
configcompilercontext.hpp icinga2 daemon -C: write icinga2.debug only if --dump-objects given 2022-11-23 12:54:33 +01:00
configfragment.hpp INITIALIZE_ONCE_WITH_PRIORITY: use enum for priority values 2023-01-18 15:57:27 +01:00
configitem.cpp icinga2 daemon: w/o --dump-objects just check for circular refs 2022-11-30 10:45:50 +01:00
configitem.hpp Rename silent parameter of ConfigItem::ActivateItems() 2021-06-21 16:07:36 +02:00
configitembuilder.cpp Replace std::shared_ptr<Expression> with Expression::Ptr 2019-10-21 17:10:51 +02:00
configitembuilder.hpp Replace std::shared_ptr<Expression> with Expression::Ptr 2019-10-21 17:10:51 +02:00
expression.cpp Simplify NamespaceValue class hierarchy to one struct without member functions 2023-01-19 17:55:11 +01:00
expression.hpp VariableExpression#GetVariable(): return by const ref not to unnecessarily malloc() 2022-10-28 14:27:53 +02:00
i2-config.hpp Replace Copyright header with a short version, part I 2019-02-25 14:48:22 +01:00
objectrule.cpp Replace Copyright header with a short version, part I 2019-02-25 14:48:22 +01:00
objectrule.hpp Replace Copyright header with a short version, part I 2019-02-25 14:48:22 +01:00
vmops.hpp Replace std::shared_ptr<Expression> with Expression::Ptr 2019-10-21 17:10:51 +02:00