83 Commits

Author SHA1 Message Date
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
a04cef1890 Introduce DictExpression#GetExpressions() 2023-12-13 16:02:50 +01:00
Alexander A. Klimov
dacd6a206d VariableExpression#GetVariable(): return by const ref not to unnecessarily malloc() 2022-10-28 14:27:53 +02:00
Alexander A. Klimov
a56ad38ad3 Separately handle apply rules targetting only specific parent objects
not to unnecessarily run e.g. the filter assign where host.name=="example.com"
for all hosts being not example.com.
2022-10-28 14:27:53 +02:00
Alexander A. Klimov
aa4cad7482 Replace std::shared_ptr<Expression> with Expression::Ptr
refs #7361
2019-10-21 17:10:51 +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
8fda8d72ac Implement support for the namespace and using keywords 2018-08-13 13:44:31 +02:00
Gunnar Beutner
1a8692d972 Implement support for namespaces 2018-08-13 13:44:31 +02:00
Gunnar Beutner
9d513d8f05 Implement support for modifying frozen attributes 2018-08-13 13:44:31 +02:00
Gunnar Beutner
8bfd419702 Implement references 2018-08-07 07:44:48 +02: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
41f0fbfd30 Add the final keyword to methods 2018-01-04 05:45:40 +00:00
Gunnar Beutner
efe99a3e5e Add the final keyword to classes 2018-01-04 05:20:20 +00: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
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
Jean Flach
f40f366e9e Remove unnecessary inline statements
fixes #5886
2017-12-20 13:22:38 +01:00
Gunnar Beutner
adc892bde7 Windows build fix 2017-12-20 08:01:04 +01:00
Gunnar Beutner
ab8386cf5c Use std::unique_ptr for Expression objects 2017-12-15 10:44:54 +01:00
Gunnar Beutner
1ad83886ac Replace a few more NULLs with nullptr 2017-12-14 15:37:20 +01:00
Gunnar Beutner
42744fde5b Remove extraneous whitespace 2017-12-14 08:50:09 +01:00
Gunnar Beutner
325e4a2fb9 Use nullptr instead of <Type>::Ptr() 2017-11-30 17:47:09 +01:00
Gunnar Beutner
6d09efc907 Use std::shared_ptr instead of boost::shared_ptr 2017-11-30 17:41:00 +01:00
Gunnar Beutner
300d424459 Use std::promise instead of boost::promise 2017-11-30 17:39:22 +01:00
Gunnar Beutner
f9feb41877 Implement support for handling exceptions in user scripts 2017-06-13 14:03:41 +02:00
Gunnar Beutner
d05b7c4178 Allow expressions for the type in object/template declarations 2017-05-11 14:21:30 +02: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
78cd56e277 Implement support for default templates
fixes #12575
2016-08-28 10:27:43 +02:00
Gunnar Beutner
eafe4c578d Avoid unnecessary copies for the DebugHint class
refs #12509
2016-08-27 18:43:14 +02:00
Gunnar Beutner
7194b36d3e Avoid unnecessary string copies for LiteralExpression objects
refs #12509
2016-08-26 18:11:56 +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
b5637a2d16 Fix memory leak for the 'use' keyword
fixes #12487
2016-08-19 09:17:40 +02:00
Gunnar Beutner
7fcf8ece72 Remove unnecessary dictionary lookups in the DebugHint class
refs #12457
2016-08-17 09:20:05 +02:00
Gunnar Beutner
c5a170a972 Implement support for namespaces
fixes #12408
2016-08-12 11:32:16 +02:00
Gunnar Beutner
f0beeba354 Fix missing names for user-defined functions
refs #12393
2016-08-11 09:08:33 +02:00
Gunnar Beutner
54bbaf9f7d Implement support for marking functions as deprecated
fixes #12393
2016-08-10 15:48:05 +02:00
Gunnar Beutner
599929b0f6 Update copyright headers for 2016 2016-01-12 08:29:59 +01:00
Gunnar Beutner
7621870278 Implement a debugger for Icinga scripts
fixes #10547
2015-11-05 14:29:45 +01:00
Gunnar Beutner
1ec20a1e8d Fix: Line continuation is broken in 'icinga2 console'
fixes #10461
2015-10-26 13:04:03 +01:00
Gunnar Beutner
74ef3e3ce6 Turn includes into AST expressions
fixes #10008
2015-10-22 09:46:31 +02:00
Gunnar Beutner
8136cda367 Implement the ignore_on_error keyword
fixes #9960
2015-10-05 12:44:11 +02:00
Michael Friedrich
da83bae660 Rename config/modules to config/packages
fixes #9953
2015-09-01 20:09:04 +02:00
Gunnar Beutner
f2a055c85a Use an AST node for the 'library' keyword
fixes #10017
2015-08-27 14:50:08 +02:00
Gunnar Beutner
6a8f890e7c Remove the FutureExpression class
fixes #9972
2015-08-24 11:04:26 +02:00
Gunnar Beutner
d8cab2f0e8 Add 'override' keyword to methods
refs #9929
2015-08-18 12:45:30 +02:00