Alexander A. Klimov
34d0b942b9
Update third-party/nlohmann_json to v3.9.1
...
the latest version w/o Apache 2.0 licensed code which conflicts with GPL 2.
2023-02-14 16:19:44 +01:00
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
fa2666fecf
JsonEncode(): encode non-[]/{} objects as strings, not null
...
... to represent function custom vars as such in Icinga DB.
2021-04-30 15:49:52 +02:00
Alexander A. Klimov
9531de3835
JsonEncode(): serialize integers w/o trailing .0
...
... so Icinga DB can parse them as integers.
2021-03-23 17:52:37 +01:00
Alexander A. Klimov
3adba5c542
JsonEncode(): suffix pretty JSON w/ \n
...
refs #8194
2020-09-02 16:11:43 +02:00
Alexander A. Klimov
0cf10c6306
Make buildable with VS 2017
2019-03-18 15:07:57 +01:00
Alexander A. Klimov
2a05b46431
Auto-sanitize data before en-/decoding JSON
2019-03-18 15:07:57 +01:00
Alexander A. Klimov
9daca0b216
Get rid of YAJL
2019-03-18 15:07:57 +01:00
Alexander A. Klimov
5882594b43
JsonEncode(): use nlohmann::json
2019-03-18 15:07:57 +01:00
Alexander A. Klimov
1b0367b740
JsonDecode(): use nlohmann::json::sax_parse()
2019-03-18 15:07:57 +01:00
Michael Friedrich
724b34c6f2
Integrate nlohmann_json into CMake
...
Better integration into base/json.cpp
Signed-off-by: Alexander A. Klimov <alexander.klimov@icinga.com>
2019-03-18 15:07:50 +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
1a8692d972
Implement support for namespaces
2018-08-13 13:44:31 +02:00
Gunnar Beutner
0b03ab854e
Avoid unnecessary casts in the JSON encoder
2018-01-11 07:31:08 +01:00
Gunnar Beutner
91c256261a
Apply clang-tidy fix 'modernize-use-default-member-init'
2018-01-04 12:24:58 +01:00
Gunnar Beutner
e3ad0be769
Apply clang-tidy fix 'modernize-use-auto'
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
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
Michael Friedrich
b7caf0820d
Ensure that *.icinga.com is used everywhere
...
fixes #13897
fixes #13277
2017-01-10 17:19:12 +01:00
Gunnar Beutner
06cb3cf875
Another build fix for Windows
...
refs #9182
2016-08-31 13:43:50 +02:00
Gunnar Beutner
68dceaab06
Replace boost::exception_ptr with std::exception_ptr
...
refs #9182
2016-08-30 20:46:23 +02:00
Gunnar Beutner
27a23fcff6
Avoid an unnecessary case in the Encode function
...
refs #12509
2016-08-27 12:20:54 +02:00
Gunnar Beutner
00eec13338
Avoid unnecessary string copies in the JSON encoder
...
refs #12509
2016-08-27 11:47:36 +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
599929b0f6
Update copyright headers for 2016
2016-01-12 08:29:59 +01:00
Gunnar Beutner
9ecfd9c830
Allow comments in JSON
...
fixes #9919
2015-08-17 08:03:25 +02:00
Gunnar Beutner
d913089a14
Remove redundant function
2015-03-02 12:47:20 +01:00
Michael Friedrich
78bfd0204c
Update copyright year
2015-01-22 12:00:23 +01:00
Gunnar Beutner
f800630c10
Implement Livestatus support for the "repl" command
...
refs #7805
2014-12-16 19:28:46 +01:00
Gunnar Beutner
89a0fc006e
Implement a boolean sub-type for the Value class
...
fixes #8043
2014-12-10 09:05:16 +01:00
Gunnar Beutner
5321bc4643
Don't validate strings in the JSON parser
...
fixes #7730
2014-11-20 10:09:13 +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
7cca2d275f
Fix incorrect #ifdef
...
refs #7454
2014-10-28 08:12:54 +01:00
Gunnar Beutner
b0179cc1fe
64-bit build fix for YAJL < 2.0
...
refs #7454
2014-10-28 06:33:40 +01:00
Gunnar Beutner
65e2e636ea
Fix compatibility with older versions of the YAJL library
...
refs #7454
2014-10-28 05:59:29 +01:00
Gunnar Beutner
8b339a6cd5
Throw saved exception in JSON decoder
...
refs #7452
2014-10-27 09:28:32 +01:00
Gunnar Beutner
f05ccd07f9
Build fix for GCC
...
refs #7452
2014-10-27 05:17:23 +01:00
Gunnar Beutner
7559273359
Replace cJSON with YAJL
...
fixes #7452
2014-10-26 20:00:35 +01:00