Julian Brost
0ebcd2662d
No longer allow overriding the frozen attribute of containers
...
The Array, Dictionary, and Namespace types provide a Freeze() method that makes
them read-only. So far, there was the possibility to call some methods with
`overrideFrozen=true` which would then bypass the corresponding check and allow
modification of the data structures nonetheless.
With 24b57f0d3a222835178e88489eabd595755ed883, this possibility was already
removed from the Namespace type. However, for interface compatibility, it kept
the parameter and just ignores it, throwing an exception on any modification on
a frozen instance.
The only place using `overrideFrozen` was processing of the `-D`/`--define`
command line flag that allows setting additional variables in the DSL. At the
time it is evaluated, there are no user-created data structures yet that could
be frozen, so the only frozen objects that could be encountered are Namespaces
(Icinga doesn't freeze other types by itself) and for these, `overrideFrozen`
already has no effect.
Hence, there is no harm in removing `overrideFrozen` altogether. This
simplifies the code and also means that frozen objects are now indeed read-only
without exceptions, allowing further optimizations regarding locking in the
future.
2025-07-08 14:16:20 +02:00
Alexander A. Klimov
21b68455ce
Use Timer::Create() instead of new Timer()
...
git ls-files -z |xargs -0 perl -pi -e 's/\bnew Timer\b/Timer::Create/g'
ex. in Timer::Create() itself.
2023-04-04 10:35:20 +02:00
Alexander Aleksandrovič Klimov
ef8619f76b
Merge pull request #8601 from Icinga/feature/replace-std-boost-bind-with-lambdas-7006
...
Feature: Replace std/boost::bind() with lambdas
2021-03-18 17:56:13 +01:00
Yonas Habteab
43ba2da39c
Replace std/boost::bind() function with lambda expression
2021-03-10 16:29:40 +01:00
Alexander A. Klimov
c3388e9af6
Use std::mutex, not boost::mutex
2021-02-03 09:54:57 +01:00
Michael Friedrich
56894bea17
Buildfix
...
Obviously tired.
fixes #7138
fixes #7139
2019-04-24 12:10:57 +02:00
Alexander A. Klimov
d8c9fdf1d4
Make Object#m_Mutex std::recursive_mutex
...
refs #7123
2019-04-17 18:26:29 +02:00
Alexander A. Klimov
7e6868bc99
Make Object#m_LockOwner std::atomic<std: 🧵 :id>
...
refs #7123
2019-04-17 18:26:23 +02:00
Alexander A. Klimov
cfd0d86b9b
Use C++11 atomics for our intrusive pointers
2019-04-02 13:54:30 +02:00
Michael Friedrich
d14a88235d
Replace Copyright header with a short version, part I
...
CLion -> replace in path
2019-02-25 14:48:22 +01:00
Michael Friedrich
dab53448bc
icinga.com: Update *.{h,c}pp
2018-10-18 09:27:04 +02:00
Gunnar Beutner
9d513d8f05
Implement support for modifying frozen attributes
2018-08-13 13:44:31 +02:00
Jean Flach
a71ab1e126
Rename macro RequireNotNull to REQUIRE_NOT_NULL
2018-02-21 13:47:46 +01:00
Noah Hilverling
6bebdf8a87
Add marco RequireNotNull
...
This is used to fix a number of possible nullptr dereferences
2018-02-21 13:47:46 +01:00
Gunnar Beutner
94e6be1a65
Remove unused includes
2018-01-22 09:52:29 +01:00
Gunnar Beutner
21254fb610
Avoid accessing attributes for validators where not necessary
2018-01-11 08:20:16 +01:00
Gunnar Beutner
71ee5ac698
Build fix
2018-01-04 12:33:51 +01:00
Gunnar Beutner
f05459b40c
Move inline functions to their .cpp files
2018-01-04 12:24:58 +01:00
Gunnar Beutner
91c256261a
Apply clang-tidy fix 'modernize-use-default-member-init'
2018-01-04 12:24:58 +01:00
Gunnar Beutner
e0c350b8a5
Apply clang-tidy fix 'modernize-use-nullptr'
2018-01-04 12:24:57 +01:00
Gunnar Beutner
ac155d1dda
Apply clang-tidy fix 'modernize-redundant-void-arg'
2018-01-04 12:24:57 +01:00
Gunnar Beutner
fe8572d75b
Remove inline methods and use explicit template instantiation to minimize the number of weak symbols
2018-01-03 11:04:58 +01:00
Michael Insel
158ae2188e
Change copyright header for 2018
2018-01-02 12:08:55 +01:00
Jean Flach
2636e6a77a
Whitespace fix
...
What does this change?
* Remove use of spaces for formatting
These could be found by using `grep -r -l -P '^\t+ +[^*]'
* Removal of training whitespaces
* A few lines longer than 120 chars
2017-12-20 14:53:52 +01:00
Gunnar Beutner
858873b940
Replace boost::bind/boost::function with std::bind/std::function
2017-11-27 15:15:11 +01:00
Michael Friedrich
b7caf0820d
Ensure that *.icinga.com is used everywhere
...
fixes #13897
fixes #13277
2017-01-10 17:19:12 +01:00
Gunnar Beutner
7879c09789
Avoid unnecessary dictionary lookups
...
refs #12555
2016-09-01 07:41:41 +02:00
Gunnar Beutner
b5b09216c6
Use lambda functions for INITIALIZE_ONCE
...
fixes #12562
2016-08-27 09:48:36 +02:00
Gunnar Beutner
288413f046
Replace BOOST_FOREACH with range-based for loops
...
fixes #12538
2016-08-25 06:46:17 +02:00
Gunnar Beutner
ab95670833
Build fix for older boost versions
...
refs #11612
2016-04-18 17:21:45 +02:00
Gunnar Beutner
3008d5ef31
Improve performance for field accesses
...
fixes #11612
2016-04-18 17:05:22 +02:00
Gunnar Beutner
db0c6ef187
Only build leak detection code when I2_LEAK_DEBUG is set
...
refs #10963
2016-01-19 16:43:46 +01:00
Gunnar Beutner
b1aa6cc98a
Decrease memory usage for the Object class
...
refs #10963
2016-01-19 16:24:07 +01:00
Gunnar Beutner
d50c8e1085
Improve debug support for analyzing memory leaks
...
refs #10963
2016-01-19 15:24:17 +01:00
Gunnar Beutner
599929b0f6
Update copyright headers for 2016
2016-01-12 08:29:59 +01:00
Gunnar Beutner
e3c75faabc
Implement support for recursive object locks
...
fixes #10596
2015-11-11 10:21:30 +01:00
Gunnar Beutner
2cc33b7fb3
Don't validate arguments/parameters that aren't strings
...
refs #10539
2015-11-10 07:59:10 +01:00
Gunnar Beutner
701961b73b
Fix the 'type' attribute for the Object class
...
refs #10387
2015-11-05 10:29:02 +01:00
Gunnar Beutner
1a6b41787a
Implement joins for status queries
...
fixes #10060
2015-09-22 09:45:23 +02:00
Gunnar Beutner
f45f6ccd82
Implement support for tracking dependencies between config objects
...
refs #9096
2015-08-25 13:54:05 +02:00
Gunnar Beutner
d118b71a2a
Fix compiler warnings
...
fixes #9929
2015-08-18 07:46:04 +02:00
Michael Friedrich
428be72bab
Implement Object#clone and rename Array/Dictionary#clone to shallow_clone
...
fixes #9931
2015-08-17 13:59:49 +02:00
Gunnar Beutner
db8b4afa58
Fix incorrect base class name for Array/Dictionary/etc.
...
refs #9921
2015-08-17 08:14:04 +02:00
Gunnar Beutner
f405a26052
Implement validation for modified attributes
2015-08-15 20:07:11 +02:00
Michael Friedrich
d7970f5bb1
Implement modified attributes v2
...
refs #9081
refs #9093
2015-08-15 20:07:10 +02:00
Gunnar Beutner
a82c65692c
Fix accessor for field 0 ("prototype")
...
fixes #9778
2015-07-30 08:23:43 +02:00
Michael Friedrich
78bfd0204c
Update copyright year
2015-01-22 12:00:23 +01:00
Gunnar Beutner
97168378e8
Rename _DEBUG to I2_DEBUG
...
fixes #7767
2014-12-19 12:19:28 +01:00
Gunnar Beutner
b8e7c5bc40
Fix the prototype for the Object class
...
refs #8065
2014-12-12 15:47:51 +01:00
Gunnar Beutner
aa38dde1fc
Implement prototype functions
...
fixes #8065
2014-12-12 15:22:37 +01:00