Yonas Habteab
398b5e3193
Implement LockIfRequired()
method for Namespace
, Dictionary
& Array
2025-07-10 18:09:21 +02:00
Yonas Habteab
57726fbb66
Do not require olock on frozen Namespace
, Dictionary
& Array
2025-07-10 18:09:21 +02:00
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
8bcae97ecc
Introduce Dictionary#GetRef()
2023-12-13 16:02:50 +01:00
Alexander A. Klimov
9376a311ea
Fix file endings
...
git ls-files -z \
|grep -zEe '^lib/' \
|grep -zEe '\.[ch]pp$' \
|xargs -0 perl -p0i -e 's/\n*(?!(?:.|\n))/\n/'
2023-05-17 18:05:13 +02:00
Julian Brost
e074e892ce
Merge pull request #9658 from Icinga/unfreeze
...
Dictionary#*(): remove bool overrideFrozen if unused
2023-02-10 19:42:00 +01:00
Alexander A. Klimov
cd78da13d3
Dictionary#Clear(): remove unused bool overrideFrozen
2023-02-10 11:33:46 +01:00
Alexander A. Klimov
270c6392d4
Dictionary#Remove(): remove unused bool overrideFrozen
2023-02-10 11:33:46 +01:00
Alexander A. Klimov
ca547d0292
Use a shared_mutex for read Dictionary
operations
...
This allows multiple parallel read operations resulting
in a overall speedup on systems with many cores.
2023-02-10 11:31:51 +01:00
Noah Hilverling
10bde2075a
Dictionary: Make sure underlaying map is ordered
2021-11-12 13:34:57 +01: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
Gunnar Beutner
e361b3c427
Implement support for frozen arrays and dictionaries
2018-01-30 12:22:04 +01:00
Jean Flach
51d5a3e457
Fix missing include
2018-01-26 14:38:55 +01:00
Gunnar Beutner
aa76ddf7f2
Build fix for ancient versions of GCC
2018-01-18 15:12:14 +01:00
Gunnar Beutner
c2fb9fe226
Use initializer lists for arrays and dictionaries
2018-01-16 12:27:44 +01:00
Gunnar Beutner
91c256261a
Apply clang-tidy fix 'modernize-use-default-member-init'
2018-01-04 12:24:58 +01:00
Gunnar Beutner
621eed3f13
Apply clang-tidy fix 'modernize-pass-by-value'
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
Michael Friedrich
52d986d02b
Revert "Add LogstashWriter feature"
...
This reverts commit f5a971f5b0a7ddcbfe20c993eec01c720f0d3dd9.
refs #4054
2017-05-23 12:05:01 +02:00
Kai Goller
f5a971f5b0
Add LogstashWriter feature
...
This adds the UdpSocket class.
refs #4054
2017-03-20 14:30:03 +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
ed72112d4b
Remove even more unnecessary copies
...
refs #12509
2016-08-27 20:37:25 +02:00
Gunnar Beutner
5058c5d75b
Use 'auto' for iterator declarations
...
fixes #12561
2016-08-27 08:37:19 +02:00
Gunnar Beutner
56ba6089d0
Add rvalue support for the Array and Dictionary classes
...
refs #12555
2016-08-27 07:42:28 +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
429d11daa8
Fix compiler warnings
...
fixes #12534
2016-08-24 20:33:34 +02:00
Gunnar Beutner
3008d5ef31
Improve performance for field accesses
...
fixes #11612
2016-04-18 17:05:22 +02:00
Gunnar Beutner
599929b0f6
Update copyright headers for 2016
2016-01-12 08:29:59 +01:00
Michael Friedrich
545607be9f
Fix that custom attribute with function value cannot be cloned
...
fixes #10583
2015-11-11 14:18:25 +01:00
Gunnar Beutner
e3c75faabc
Implement support for recursive object locks
...
fixes #10596
2015-11-11 10:21:30 +01:00
Gunnar Beutner
a51bc4010a
Fix indentation for Dictionary::ToString
...
fixes #10527
2015-11-04 08:44:56 +01:00
Gunnar Beutner
dd77863910
Implement Array::ToString and Dictionary::ToString
...
fixes #10329
2015-10-26 11:05:24 +01:00
Gunnar Beutner
fd2cd7a3a5
Use operator[] instead of insert() for Dictionary::Set
...
refs #10428
2015-10-23 06:19:46 +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
91da55872d
Avoid unnecessary dictionary lookups
...
fixes #8922
2015-03-31 11:45:38 +02:00
Gunnar Beutner
43f709c22a
Fix complexity class for Dictionary::Get
...
fixes #8919
2015-03-31 10:39:02 +02:00
Gunnar Beutner
37aa3413d8
Allow some of the Array and Dictionary methods to be inlined by the compiler
...
fixes #8666
2015-03-10 13:46:24 +01:00
Gunnar Beutner
9181d7ae05
Add missing service name in check results
...
refs #8257
2015-03-05 20:50:27 +01:00
Gunnar Beutner
fb323ee215
Evaluate apply filters in the for loop
...
fixes #7610
2015-01-29 12:38:25 +01:00
Michael Friedrich
78bfd0204c
Update copyright year
2015-01-22 12:00:23 +01:00
Gunnar Beutner
aa38dde1fc
Implement prototype functions
...
fixes #8065
2014-12-12 15:22:37 +01:00
Gunnar Beutner
478f03b49a
Replace boost::shared_ptr with boost::intrusive_ptr
...
refs #7622
2014-11-09 16:54:41 +01:00
Gunnar Beutner
9f7c97051e
Hide attributes in command auto-completion which cannot be set
...
refs #7403
2014-10-31 08:49:14 +01:00
Gunnar Beutner
7559273359
Replace cJSON with YAJL
...
fixes #7452
2014-10-26 20:00:35 +01:00