Julian Brost
1c066fc02e
Simplify NamespaceValue class hierarchy to one struct without member functions
...
This commit removes EmbeddedNamespaceValue and ConstEmbeddedNamespaceValue and
reduces NamespaceValue down to a simple struct without inheritance or member
functions. The code from these clases is inlined into the Namespace class. The
class hierarchy determining whether a value is const is moved to an attribute
of NamespaceValue.
This is done in preparation for changes to the locking in the Namespace class.
Currently, it relies on a recursive mutex. In the future, a shared mutex
(read/write lock) should be used instead, which cannot allow recursive locking
(without failing or risk deadlocking on lock upgrades). With this change, all
operations requiring a lock for one operation are within one function, no
recursive locking is not needed any more.
2023-01-19 17:55:11 +01:00
Alexander A. Klimov
7c481742f4
icinga2 daemon: w/o --dump-objects just check for circular refs
...
and don't malloc() anything.
2022-11-30 10:45:50 +01:00
Alexander A. Klimov
e53ec2a50f
SerializeInternal(): allow to optionally not malloc() anything
...
This effectively just checks for circular refs.
2022-11-30 10:45:50 +01:00
Elias Ohm
cdd843a998
another small adjustment by the way just to ensure the object on stack ist the same as the one serialized further in case the object does not implement locking on mutation (besides it's mor efficient to not fetch the same value twice)
2019-05-01 12:09:24 +02:00
Elias Ohm
91296c2a25
Lock Objects during serialization
...
old behaviour was to only lock arrays, dictionaries and namespaces but not other objects
2019-04-28 22:13:19 +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
1a8692d972
Implement support for namespaces
2018-08-13 13:44:31 +02:00
Gunnar Beutner
56cf64f590
Improve error message for serializing objects with recursive references
2018-08-02 11:06:24 +02:00
Gunnar Beutner
c2fb9fe226
Use initializer lists for arrays and dictionaries
2018-01-16 12:27:44 +01:00
Michael Insel
158ae2188e
Change copyright header for 2018
2018-01-02 12:08:55 +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
Michael Friedrich
b7caf0820d
Ensure that *.icinga.com is used everywhere
...
fixes #13897
fixes #13277
2017-01-10 17:19:12 +01:00
Gunnar Beutner
288413f046
Replace BOOST_FOREACH with range-based for loops
...
fixes #12538
2016-08-25 06:46:17 +02:00
Gunnar Beutner
ed53366490
Avoid duplicate IDO config updates at startup
...
fixes #12417
2016-08-13 23:31:22 +02:00
Gunnar Beutner
112f024810
Build fix for GCC
...
refs #9839
2016-03-29 14:52:48 +02:00
Gunnar Beutner
599929b0f6
Update copyright headers for 2016
2016-01-12 08:29:59 +01:00
Michael Friedrich
5d46f661ea
Implement 'console' cli command using the API
...
fixes #10387
2015-11-04 16:01:06 +01:00
Michael Friedrich
78bfd0204c
Update copyright year
2015-01-22 12:00:23 +01:00
Gunnar Beutner
461cf8dbc1
Make sure Serialize() doesn't fail for objects which don't have a registered type
...
fixes #7895
2014-12-13 21:42:39 +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
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
315c84eb4a
Fix problems with the serializer when using 'type' as an attribute
...
fixes #7372
2014-10-25 09:14:56 +02:00
Gunnar Beutner
632026cd9f
Rename C++ header files.
...
Fixes #6291
2014-05-25 16:27:14 +02:00
Gunnar Beutner
16a2d36bdc
Rename --debug to --log-level.
...
Refs #6276
2014-05-23 18:11:21 +02:00
Gunnar Beutner
c7b5e4c31e
Fix some compiler warnings.
...
Refs #5823
2014-05-11 06:04:43 +02:00
Gunnar Beutner
45270f1bb8
Refactor the agent and cluster components.
...
Refs #6107
2014-05-08 09:13:04 +02:00
Gunnar Beutner
9897358fc6
Add missing lock in DeserializeObject().
...
Refs #5870
2014-03-30 01:20:57 +01:00
Gunnar Beutner
54063f0b9f
Rename __name and __type properties.
...
Refs #5870
2014-03-28 14:17:55 +01:00
Michael Friedrich
ce737ff2f3
Change copyright header (again).
...
Fixes #5424
2014-03-19 11:42:47 +01:00
Michael Friedrich
555d72150a
Update copyright header.
...
Fixes #5424
2014-01-09 00:32:11 +01:00
Gunnar Beutner
21fb0d9872
Implement "safe mode" for icinga::Deserialize.
...
Fixes #5035
2013-12-18 10:27:58 +01:00
Gunnar Beutner
e7184225f3
Improve performance for icinga::Deserialize.
...
Refs #5327
2013-12-13 14:08:11 +01:00
Gunnar Beutner
6625346922
Speed up config compiler.
...
Fixes #5255
2013-12-03 09:59:21 +01:00
Gunnar Beutner
f05858d3ad
Avoid unnecessary copies when iterating over dictionaries.
...
Refs #5246
2013-12-02 11:07:38 +01:00
Gunnar Beutner
17834e0a77
Ignore invalid fields in the state file.
...
Refs #5039
2013-11-09 18:30:17 +01:00
Gunnar Beutner
a84536bea3
Implement serializer support for arbitrary classes.
...
Fixes #5024
2013-11-08 14:08:59 +01:00
Gunnar Beutner
6acc017707
Remove namespace qualifiers for boost::make_shared and boost::enable_shared_from_this.
...
Fixes #5012
2013-11-07 08:28:33 +01:00
Gunnar Beutner
b1ddc71925
Merge ReflectionObject methods into the Object class.
...
Refs #4996
2013-11-05 08:56:30 +01:00