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
aa4cad7482
Replace std::shared_ptr<Expression> with Expression::Ptr
...
refs #7361
2019-10-21 17:10:51 +02:00
Michael Friedrich
0d25ae0e08
Quality: Prefer BOOST_{,UN}LIKELY gcc optimizer macros over our own
...
Our macro collides with Boost::DateTime and the gregorian classes
and I don't see any reason why we shouldn't use Boost::Config
being already there.
2019-07-09 13:20:53 +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
c2fb9fe226
Use initializer lists for arrays and dictionaries
2018-01-16 12:27:44 +01:00
Gunnar Beutner
a36e847c6c
Allocate ConfigItemBuilder objects on the stack
2018-01-11 10:52:26 +01:00
Gunnar Beutner
e3ad0be769
Apply clang-tidy fix 'modernize-use-auto'
2018-01-04 12:24:57 +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
02dc3a9507
Workaround for GCC bug 61321
2017-12-20 08:02:17 +01:00
Gunnar Beutner
4866f777cc
Avoid unnecessary allocations for script frames
2017-12-18 13:40:29 +01:00
Gunnar Beutner
ab8386cf5c
Use std::unique_ptr for Expression objects
2017-12-15 10:44:54 +01:00
Gunnar Beutner
325e4a2fb9
Use nullptr instead of <Type>::Ptr()
2017-11-30 17:47:09 +01:00
Gunnar Beutner
3c60fbf75d
Use std::vector::emplace_back instead of std::vector::push_back
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
d5961bb76c
Re-implement WrapFunction() using C++11 features
2017-11-29 11:53:45 +01:00
Gunnar Beutner
858873b940
Replace boost::bind/boost::function with std::bind/std::function
2017-11-27 15:15:11 +01:00
Gunnar Beutner
d05b7c4178
Allow expressions for the type in object/template declarations
2017-05-11 14:21:30 +02:00
Gunnar Beutner
5d45c74be3
Improve function metadata by adding arguments
...
fixes #5087
2017-03-27 14:43:19 +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
11e1cc9939
Remove unnecessary ScriptFrame variable
...
refs #12509
2016-08-29 05:54:07 +02:00
Gunnar Beutner
78cd56e277
Implement support for default templates
...
fixes #12575
2016-08-28 10:27:43 +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
2a40a71ffa
Change scoping mechanism for the __using keyword
...
refs #12408
2016-08-12 13:14:10 +02:00
Gunnar Beutner
c5a170a972
Implement support for namespaces
...
fixes #12408
2016-08-12 11:32:16 +02:00
Gunnar Beutner
54bbaf9f7d
Implement support for marking functions as deprecated
...
fixes #12393
2016-08-10 15:48:05 +02:00
Gunnar Beutner
8deeb73bb8
Register a new script frame in Function::Invoke
...
fixes #9848
2016-08-08 14:12:08 +02:00
Gunnar Beutner
d2cd4b6667
Improve performance for locks and value conversions
...
refs #11612
2016-04-19 09:38:22 +02:00
Gunnar Beutner
3008d5ef31
Improve performance for field accesses
...
fixes #11612
2016-04-18 17:05:22 +02:00
Gunnar Beutner
eb0892273e
Implement the DateTime class
...
fixes #9839
2016-03-29 13:27:20 +02:00
Gunnar Beutner
599929b0f6
Update copyright headers for 2016
2016-01-12 08:29:59 +01:00
Gunnar Beutner
79b15efd09
Allow null values for constructor calls
...
fixes #10628
2015-11-14 05:36:48 +01:00
Gunnar Beutner
de847d0b6f
Don't allow scripts to access FANoUserView attributes in sandbox mode
...
fixes #10457
2015-10-26 10:41:00 +01:00
Gunnar Beutner
8136cda367
Implement the ignore_on_error keyword
...
fixes #9960
2015-10-05 12:44:11 +02:00
Gunnar Beutner
ad6c8eaf7e
Fix: String methods cannot be invoked on an empty string
...
fixes #10191
2015-09-22 11:24:00 +02:00
Gunnar Beutner
6fa58a520c
Implement config object sync
...
Adds object version.
refs #9927
2015-09-17 14:20:43 +02:00
Michael Friedrich
da83bae660
Rename config/modules to config/packages
...
fixes #9953
2015-09-01 20:09:04 +02:00
Michael Friedrich
0f5287c2b1
Add module attribute for ConfigObject and set its origin
...
fixes #9852
2015-08-17 16:08:57 +02:00
Gunnar Beutner
1b21faeb5d
Move object name validation into ConfigItemBuilder class
...
fixes #9911
2015-08-15 20:07:11 +02:00
Gunnar Beutner
1634dbc6e4
Fix crash when trying to set field on a value that is not an object
...
fixes #9779
2015-07-30 08:28:07 +02:00
Paul Richards
5cd2056f43
Fix crash in VMOps::FunctionCall
...
fixes #8952
Signed-off-by: Gunnar Beutner <gunnar@beutner.name>
2015-04-01 22:51:17 +02:00
Gunnar Beutner
91da55872d
Avoid unnecessary dictionary lookups
...
fixes #8922
2015-03-31 11:45:38 +02:00
Gunnar Beutner
a74fb1e7e8
Avoid setting up unnecessary stack frames for function calls
2015-03-31 07:09:20 +02:00
Gunnar Beutner
ec7224e3ed
Generate C++ code for type validators
...
fixes #7709
fixes #8867
2015-03-27 07:59:27 +01:00
Gunnar Beutner
808a26ae72
Fix: 'return' keyword doesn't work inside for loops
...
fixes #8834
2015-03-22 00:04:57 +01:00
Gunnar Beutner
ed29d06ab6
Implement constructor-style casts
...
fixes #8832
2015-03-21 22:48:23 +01:00