Yonas Habteab
91c7e60df8
Replace all existing copyright headers with SPDX headers
...
I've used the following command to replace the original copyright header
lines in a C-style comment block:
```
$ find . \( -type d \( -name '\..*' -o -name third-party -o -name scripts -o -name prefix -o -name malloc -o -name server -o -name docker -o -name build -o -name doc \) -prune \) -o -type f -exec perl -pi -e 's{/\*[^*]*\(\s*c\s*\)\s*(\d{4})\s*Icinga\s+GmbH[^*]*\*/}{// SPDX-FileCopyrightText: \1 Icinga GmbH <https://icinga.com >\n// SPDX-License-Identifier: GPL-2.0-or-later}gi' {} +
```
For files that use shell-style comments (#) like CMakeLists.txt, I've
used this command:
```
$ find . \( -type d \( -name '\..*' -o -name third-party -o -name scripts -o -name prefix -o -name malloc -o -name server -o -name docker -o -name build -o -name doc \) -prune \) -o -type f -exec perl -pi -e 's{#.*\(\s*c\s*\)\s(\d{4})\sIcinga\s+GmbH.*}{# SPDX-FileCopyrightText: \1 Icinga GmbH <https://icinga.com >\n# SPDX-License-Identifier: GPL-2.0-or-later}gi' {} +
```
And for SQL files:
```
$ find . \( -type d \( -name '\..*' -o -name third-party -o -name scripts -o -name prefix -o -name malloc -o -name server -o -name docker -o -name build -o -name doc \) -prune \) -o -type f \( -name '*.sql' \) -exec perl -pi -e 's{--.*\(c\)\s(\d{4})\sIcinga\sGmbH.*}{-- SPDX-FileCopyrightText: \1 Icinga GmbH <https://icinga.com >\n-- SPDX-License-Identifier: GPL-2.0-or-later}gi' {} +
$ find . \( -type d \( -name '\..*' -o -name third-party -o -name scripts -o -name prefix -o -name malloc -o -name server -o -name docker -o -name build -o -name doc \) -prune \) -o -type f \( -name '*.sql' \) -exec perl -pi -e 's{-- Copyright \(c\)\s(\d{4})\sIcinga\s+Development\sTeam.*}{-- SPDX-FileCopyrightText: \1 Icinga GmbH <https://icinga.com >\n-- SPDX-License-Identifier: GPL-2.0-or-later}gi' {} +
```
2026-02-04 14:00:05 +01:00
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 24b57f0d3a , 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
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
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
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
9ca682496c
Apply clang-tidy fix 'modernize-use-override'
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
efe99a3e5e
Add the final keyword to classes
2018-01-04 05:20:20 +00: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
Gunnar Beutner
90496b5456
Build libraries as static libraries
2018-01-02 23:29:48 +01:00
Michael Insel
158ae2188e
Change copyright header for 2018
2018-01-02 12:08:55 +01:00
Jean Flach
f40f366e9e
Remove unnecessary inline statements
...
fixes #5886
2017-12-20 13:22:38 +01:00
Gunnar Beutner
42744fde5b
Remove extraneous whitespace
2017-12-14 08:50:09 +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
5127a193b4
Avoid unnecessary copies when using Dictionary::Pair in loops
...
refs #12509
2016-08-30 23:01:54 +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
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
Gunnar Beutner
dd77863910
Implement Array::ToString and Dictionary::ToString
...
fixes #10329
2015-10-26 11:05:24 +01: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
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
2cbc3142dc
Avoid some unnecessary PLT indirections for constructor calls
...
refs #8890
2015-03-28 16:13:44 +01: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
170c5a59e4
Implement typeof() function
2014-11-03 00:45:14 +01:00
Gunnar Beutner
7559273359
Replace cJSON with YAJL
...
fixes #7452
2014-10-26 20:00:35 +01:00
Gunnar Beutner
634ef772c3
Build fix for Boost 1.56
...
fixes #7001
2014-08-25 15:12:39 +02:00
Gunnar Beutner
632026cd9f
Rename C++ header files.
...
Fixes #6291
2014-05-25 16:27:14 +02:00