History log of /openbmc/sdbusplus/include/ (Results 1 – 25 of 271)
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
67cfca7711-Mar-2025 Alexander Hansen <alexander.hansen@9elements.com>

Add missing include for move_only_function

#include <functional>

References:
[1] https://en.cppreference.com/w/cpp/utility/functional/move_only_function

Change-Id: I5b605eab5209a0bed545dfd74166c5

Add missing include for move_only_function

#include <functional>

References:
[1] https://en.cppreference.com/w/cpp/utility/functional/move_only_function

Change-Id: I5b605eab5209a0bed545dfd74166c5eb0a8c3647
Signed-off-by: Alexander Hansen <alexander.hansen@9elements.com>

show more ...

98f141f910-Mar-2025 Alexander Hansen <alexander.hansen@9elements.com>

asio: Explicitly discard return value for spawn

otherwise we get
```
error: ignoring returned value of type ‘boost::asio::deferred_async_operation<...
```

Change-Id: I8929539ee46f9791e69d0ea3558ff6

asio: Explicitly discard return value for spawn

otherwise we get
```
error: ignoring returned value of type ‘boost::asio::deferred_async_operation<...
```

Change-Id: I8929539ee46f9791e69d0ea3558ff60c5d2b5a6d
Signed-off-by: Alexander Hansen <alexander.hansen@9elements.com>

show more ...

668c56b023-Feb-2025 Ed Tanous <etanous@nvidia.com>

Break out unpack function

This really shouldn't be a lambda. It's too complex for what it is.
Break it into a templated method.

Ideally this wouldn't be a lambda at all, and could use something li

Break out unpack function

This really shouldn't be a lambda. It's too complex for what it is.
Break it into a templated method.

Ideally this wouldn't be a lambda at all, and could use something like
std::bind_front, but I couldn't quite get the templates to align, so
that will be for another patch.

Change-Id: Icda0272845f99eb8b0dbfd159e8066709393c8be
Signed-off-by: Ed Tanous <etanous@nvidia.com>

show more ...

50fe983a23-Feb-2025 Ed Tanous <ed@tanous.net>

break out boost coroutines async_send

async_send is a method that was attempted to be shared between coroutine
and non-coroutine cases. Unfortunately to have this code sharing
requires a very expen

break out boost coroutines async_send

async_send is a method that was attempted to be shared between coroutine
and non-coroutine cases. Unfortunately to have this code sharing
requires a very expensive template, boost::asio::initiate. While this
template is great for generalizing, it results in a template
instantiation per call site, which doesn't scale well at build time in
things like bmcweb, where we have 400+ async_method_call sites.

This commit breaks out async_send into async_send and async_send_yield,
which allows using concrete callback and return types, thus avoiding
the multiple template instantiations.

Tested: ClangBuildAnalyzer shows that this template is no longer one of
the longest to instantiate.

Change-Id: Ic8f226e5be71f05c5f5dcb73eb51e6094dc704eb
Signed-off-by: Ed Tanous <etanous@nvidia.com>

show more ...

eefdbf5323-Feb-2025 Ed Tanous <ed@tanous.net>

Make property overloads accept by const ref

In asio enabled daemons it's generally good practice to capture
error_code by const reference, such that if an inherited class is
presented on the interfa

Make property overloads accept by const ref

In asio enabled daemons it's generally good practice to capture
error_code by const reference, such that if an inherited class is
presented on the interface, no copy needs to be made, and more
importantly the copy code isn't generated in the binary.

This doesn't effect any use. I believe bmcweb is the only user of
these, and this reduces the template instantiation time by a minor
amount to keep this consistent.

Change-Id: I53c7d42844400a846ef2832aaf5dbd0cc651a85f
Signed-off-by: Ed Tanous <etanous@nvidia.com>

show more ...

5a6a914123-Feb-2025 Ed Tanous <etanous@nvidia.com>

Perfect forwarding on async_method_call

In this code, there was clearly an attempt to implement perfect
forwarding, given that this is just an intermediate function.

Implement perfect forwarding.

Perfect forwarding on async_method_call

In this code, there was clearly an attempt to implement perfect
forwarding, given that this is just an intermediate function.

Implement perfect forwarding.

Change-Id: I62abfa2d85aad73dcb45eaf0cbf81a26cabdcb03
Signed-off-by: Ed Tanous <etanous@nvidia.com>

show more ...

6269157301-Feb-2025 Patrick Williams <patrick@stwcx.xyz>

clang-format: update latest spec and reformat

Copy the latest format file from the docs repository and apply.

Change-Id: I8000f29e7e567f47b61325ebd6241d4d70d624b5
Signed-off-by: Patrick Williams <p

clang-format: update latest spec and reformat

Copy the latest format file from the docs repository and apply.

Change-Id: I8000f29e7e567f47b61325ebd6241d4d70d624b5
Signed-off-by: Patrick Williams <patrick@stwcx.xyz>

show more ...


/openbmc/sdbusplus/.clang-format
/openbmc/sdbusplus/example/calculator-client.cpp
/openbmc/sdbusplus/example/gen/meson.build
/openbmc/sdbusplus/example/gen/net/poettering/Calculator/meson.build
/openbmc/sdbusplus/example/gen/net/poettering/meson.build
/openbmc/sdbusplus/example/gen/regenerate-meson
sdbusplus/asio/object_server.hpp
sdbusplus/asio/property.hpp
sdbusplus/async/stdexec/__detail/__let.hpp
sdbusplus/async/stdexec/__detail/__meta.hpp
sdbusplus/async/stdexec/__detail/__schedulers.hpp
sdbusplus/async/stdexec/__detail/__sender_adaptor_closure.hpp
sdbusplus/async/stdexec/__detail/__transform_sender.hpp
sdbusplus/async/stdexec/__detail/__utility.hpp
sdbusplus/async/stdexec/at_coroutine_exit.hpp
sdbusplus/async/stdexec/coroutine.hpp
sdbusplus/async/stdexec/functional.hpp
sdbusplus/async/stdexec/stop_token.hpp
sdbusplus/async/stdexec/task.hpp
sdbusplus/message.hpp
sdbusplus/message/append.hpp
sdbusplus/sdbus.hpp
sdbusplus/server/transaction.hpp
sdbusplus/utility/type_traits.hpp
sdbusplus/vtable.hpp
/openbmc/sdbusplus/meson.build
/openbmc/sdbusplus/test/gen/meson.build
/openbmc/sdbusplus/test/gen/regenerate-meson
/openbmc/sdbusplus/test/gen/server/Test/meson.build
/openbmc/sdbusplus/test/gen/server/meson.build
/openbmc/sdbusplus/tools/meson.build
/openbmc/sdbusplus/tools/sdbusplus/property.py
/openbmc/sdbusplus/tools/sdbusplus/templates/interface.aserver.hpp.mako
/openbmc/sdbusplus/tools/sdbusplus/templates/interface.client.hpp.mako
/openbmc/sdbusplus/tools/sdbusplus/templates/interface.common.hpp.mako
/openbmc/sdbusplus/tools/sdbusplus/templates/signal.aserver.emit.hpp.mako
/openbmc/sdbusplus/tools/sdbusplus/templates/signal.prototype.hpp.mako
56dd6dd415-Jan-2025 Patrick Williams <patrick@stwcx.xyz>

events: remove std::function for hook

Using std::function causes a potential constructor / destructor
pair to be created. Since this pair is created in the library
registering the event [hook], it

events: remove std::function for hook

Using std::function causes a potential constructor / destructor
pair to be created. Since this pair is created in the library
registering the event [hook], it is both overhead and a potential
avenue of library load ordering issues. Switch to a simpler raw
function pointer instead.

Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
Change-Id: I3948dc10a461384af07d7c0d7a675e2e046bc6ae

show more ...

36137e0918-Dec-2024 Patrick Williams <patrick@stwcx.xyz>

clang-format: re-format for clang-19

clang-format-19 isn't compatible with the clang-format-18 output, so we
need to reformat the code with the latest version. A few parameters
in clang-tidy have b

clang-format: re-format for clang-19

clang-format-19 isn't compatible with the clang-format-18 output, so we
need to reformat the code with the latest version. A few parameters
in clang-tidy have been deprecated, so adjust the style file
accordingly.

See Ie2f6eb3b043f2d655c9df806815afd7971fd0947 for updated style.
See I88192b41ab7a95599a90915013579608af7bc56f for clang-19 enablement.

Change-Id: I65cb0501917fee37f007ed97ce973e0dd07170fa
Signed-off-by: Patrick Williams <patrick@stwcx.xyz>

show more ...


/openbmc/sdbusplus/.clang-format
/openbmc/sdbusplus/example/calculator-aserver.cpp
sdbusplus/async/callback.hpp
sdbusplus/async/fdio.hpp
sdbusplus/async/match.hpp
sdbusplus/async/stdexec/__detail/__awaitable.hpp
sdbusplus/async/stdexec/__detail/__basic_sender.hpp
sdbusplus/async/stdexec/__detail/__bulk.hpp
sdbusplus/async/stdexec/__detail/__connect_awaitable.hpp
sdbusplus/async/stdexec/__detail/__continue_on.hpp
sdbusplus/async/stdexec/__detail/__continues_on.hpp
sdbusplus/async/stdexec/__detail/__domain.hpp
sdbusplus/async/stdexec/__detail/__env.hpp
sdbusplus/async/stdexec/__detail/__intrusive_mpsc_queue.hpp
sdbusplus/async/stdexec/__detail/__intrusive_ptr.hpp
sdbusplus/async/stdexec/__detail/__intrusive_queue.hpp
sdbusplus/async/stdexec/__detail/__intrusive_slist.hpp
sdbusplus/async/stdexec/__detail/__let.hpp
sdbusplus/async/stdexec/__detail/__meta.hpp
sdbusplus/async/stdexec/__detail/__on.hpp
sdbusplus/async/stdexec/__detail/__operation_states.hpp
sdbusplus/async/stdexec/__detail/__p2300.hpp
sdbusplus/async/stdexec/__detail/__schedule_from.hpp
sdbusplus/async/stdexec/__detail/__schedulers.hpp
sdbusplus/async/stdexec/__detail/__senders.hpp
sdbusplus/async/stdexec/__detail/__split.hpp
sdbusplus/async/stdexec/__detail/__start_on.hpp
sdbusplus/async/stdexec/__detail/__starts_on.hpp
sdbusplus/async/stdexec/__detail/__sync_wait.hpp
sdbusplus/async/stdexec/__detail/__transfer_just.hpp
sdbusplus/async/stdexec/__detail/__transform_sender.hpp
sdbusplus/async/stdexec/__detail/__when_all.hpp
sdbusplus/async/stdexec/__detail/__with_awaitable_senders.hpp
sdbusplus/async/stdexec/any_sender_of.hpp
sdbusplus/async/stdexec/async_scope.hpp
sdbusplus/async/stdexec/at_coroutine_exit.hpp
sdbusplus/async/stdexec/functional.hpp
sdbusplus/async/stdexec/sequence_senders.hpp
sdbusplus/async/stdexec/stop_token.hpp
sdbusplus/async/stdexec/task.hpp
sdbusplus/async/timer.hpp
sdbusplus/message/native_types.hpp
sdbusplus/utility/container_traits.hpp
/openbmc/sdbusplus/src/async/context.cpp
/openbmc/sdbusplus/test/async/context.cpp
/openbmc/sdbusplus/test/async/fdio.cpp
f083bc1a16-Dec-2024 Patrick Williams <patrick@stwcx.xyz>

stdexec: update to latest commit

Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
Change-Id: I93e33afb0ca87f425074e86f87e6cde320f20dbc


sdbusplus/async/context.hpp
sdbusplus/async/stdexec/__detail/__basic_sender.hpp
sdbusplus/async/stdexec/__detail/__bulk.hpp
sdbusplus/async/stdexec/__detail/__config.hpp
sdbusplus/async/stdexec/__detail/__connect_awaitable.hpp
sdbusplus/async/stdexec/__detail/__continues_on.hpp
sdbusplus/async/stdexec/__detail/__domain.hpp
sdbusplus/async/stdexec/__detail/__env.hpp
sdbusplus/async/stdexec/__detail/__execution_fwd.hpp
sdbusplus/async/stdexec/__detail/__let.hpp
sdbusplus/async/stdexec/__detail/__manual_lifetime.hpp
sdbusplus/async/stdexec/__detail/__meta.hpp
sdbusplus/async/stdexec/__detail/__on.hpp
sdbusplus/async/stdexec/__detail/__read_env.hpp
sdbusplus/async/stdexec/__detail/__receivers.hpp
sdbusplus/async/stdexec/__detail/__schedule_from.hpp
sdbusplus/async/stdexec/__detail/__schedulers.hpp
sdbusplus/async/stdexec/__detail/__sender_adaptor_closure.hpp
sdbusplus/async/stdexec/__detail/__senders.hpp
sdbusplus/async/stdexec/__detail/__shared.hpp
sdbusplus/async/stdexec/__detail/__spin_loop_pause.hpp
sdbusplus/async/stdexec/__detail/__starts_on.hpp
sdbusplus/async/stdexec/__detail/__sync_wait.hpp
sdbusplus/async/stdexec/__detail/__transfer_just.hpp
sdbusplus/async/stdexec/__detail/__tuple.hpp
sdbusplus/async/stdexec/__detail/__type_traits.hpp
sdbusplus/async/stdexec/__detail/__variant.hpp
sdbusplus/async/stdexec/__detail/__when_all.hpp
sdbusplus/async/stdexec/async_scope.hpp
sdbusplus/async/stdexec/at_coroutine_exit.hpp
sdbusplus/async/stdexec/commit.info
sdbusplus/async/stdexec/coroutine.hpp
sdbusplus/async/stdexec/execution.hpp
sdbusplus/async/stdexec/task.hpp
sdbusplus/async/timer.hpp
/openbmc/sdbusplus/src/async/context.cpp
869230c612-Dec-2024 Patrick Williams <patrick@stwcx.xyz>

async: fdio: remove unused member

clang warns about an unused private field ('fd') because it is
a capture-only member. There isn't any reason to keep the fd
around once the underlying sd_event has

async: fdio: remove unused member

clang warns about an unused private field ('fd') because it is
a capture-only member. There isn't any reason to keep the fd
around once the underlying sd_event has been created, so remove
it as a member.

Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
Change-Id: I176b2c4b53bbd7e4bb4bc9a9594f5816ee1bda2e

show more ...

d792b8cd06-Dec-2024 Jayanth Othayoth <ojayanth@gmail.com>

clang-tidy: Fix implicit copy constructor errors

The following errors were reported during clang-tidy enablement due
to the implicit copy constructor. These errors are suppressed using
pragma diagno

clang-tidy: Fix implicit copy constructor errors

The following errors were reported during clang-tidy enablement due
to the implicit copy constructor. These errors are suppressed using
pragma diagnostic ignore checks.

'''
../include/sdbusplus/async/stdexec/../stdexec/__detail/__env.hpp:463:11:
error: definition of implicit copy constructor for 'prop<stdexec::__queries::get_stop_token_t
../include/sdbusplus/async/stdexec/../stdexec/__detail/__env.hpp:501:10:
error: definition of implicit copy constructor for 'env<>' is deprecated because it has a
user-declared copy assignment operator [-Werror
../include/sdbusplus/async/stdexec/../stdexec/__detail/__env.hpp:544:10:
error: definition of implicit copy constructor for 'env<stdexec::__env::prop<stdexec::__queries::get_stop_token_t
../include/sdbusplus/async/stdexec/../stdexec/__detail/__env.hpp:609:14:
error: definition of implicit copy constructor for '__t' is deprecated because it has\
a user-declared copy assignment operator [-Werror
'''

Tested: Verified build and unit testing.

Change-Id: I0b74cdbd5b5c58ba3c01866ffb0509e070861db9
Signed-off-by: Jayanth Othayoth <ojayanth@gmail.com>

show more ...

dfbd9ddf11-Sep-2024 Lei YU <yulei.sh@bytedance.com>

asio: connection: Return unpacked value directly

`yield_method_call()` shall return the values of DBus methods, and it
was using constexpr if to check `sizeof...(RetTypes)` to get the return
type an

asio: connection: Return unpacked value directly

`yield_method_call()` shall return the values of DBus methods, and it
was using constexpr if to check `sizeof...(RetTypes)` to get the return
type and construct default return values.

`message::unpack()` does the same thing so it is possible to return
directly.

In case of error occurs, it still need to return the default-constructed
value, so a helper function `default_ret_types()` is introduced for
default return in such case.

Change-Id: Iac7501dc03c1cfaf16f59f7ae742168c6be5886d
Signed-off-by: Lei YU <yulei.sh@bytedance.com>

show more ...

cd3bf08a12-Oct-2024 Ed Tanous <etanous@nvidia.com>

Handle timeouts in asio connections

It was reported in #98 that timeouts weren't working in some simple
cases. This appears to be because we've broken some of the assumptions
used by sd-bus around

Handle timeouts in asio connections

It was reported in #98 that timeouts weren't working in some simple
cases. This appears to be because we've broken some of the assumptions
used by sd-bus around manually handling polling loops, and ignoring
sd_bus_get_timeout and sd_bus_get_events, as well as not calling
sd_bus_get_fd before every invocation. [1]

This commit:
Adds a steady_timer class to the asio object, which indirectly allows
expiring the underlying epoll loop early, based on the result of
sd_bus_get_timeout.

Changes the flow such that sd_bus_get_events is called and obeyed when
adding poll events to the reactor. While this wasn't seen in practice,
in theory we have the potential to miss events during heavy write loads
where the socket might block. This should resolve it.

Re-calls sd_bus_get_fd on each invocation of the poll loop, as directed
by the sd_bus documentation. Further testing is needed to see if this
resolves some of the match_t issues we've seen.

Tested: asio-example functions and prints expected content. More
in-system testing needed.

[1] https://www.freedesktop.org/software/systemd/man/249/sd_bus_get_fd.html#

Change-Id: I9abe99c95eb5395753dde33f92c831bd828238f3
Signed-off-by: Ed Tanous <etanous@nvidia.com>

show more ...

9737e15f12-Oct-2024 Ed Tanous <etanous@nvidia.com>

Add get_events and get_timeout

These two functions are required for handling external io loops
properly, per the sd-bus documentation. Add them to the interface, and
mocks.

Change-Id: Ic2d20607585

Add get_events and get_timeout

These two functions are required for handling external io loops
properly, per the sd-bus documentation. Add them to the interface, and
mocks.

Change-Id: Ic2d20607585ddf669d1cf6e7acc3e5970489489b
Signed-off-by: Ed Tanous <etanous@nvidia.com>

show more ...

2a12ae1223-Oct-2024 Jagpal Singh Gill <paligill@gmail.com>

add async fd sender receiver for coroutines

Add async sender receiver for file descriptor based events. The user of
the async file descriptor needs to initialize a fdio instance and then
call next()

add async fd sender receiver for coroutines

Add async sender receiver for file descriptor based events. The user of
the async file descriptor needs to initialize a fdio instance and then
call next() to get each new event for the fd.

Tested:
```
> meson test -C builddir test_async_fdio
ninja: Entering directory `/host/repos/sdbusplus/builddir'
ninja: no work to do.
1/1 test_async_fdio OK 6.01s

Ok: 1
Expected Fail: 0
Fail: 0
Unexpected Pass: 0
Skipped: 0
Timeout: 0

Full log written to /host/repos/sdbusplus/builddir/meson-logs/testlog.txt
```

Change-Id: I1b4f16963e6096f30484c4a6df471e64ed24448b
Signed-off-by: Jagpal Singh Gill <paligill@gmail.com>

show more ...

956e87a211-Nov-2024 Jayanth Othayoth <ojayanth@gmail.com>

boost version 1.86 support

Added fix for boost::asio::spawn overload issue reported similar
to chriskohlhoff/asio#1524. This error is reported by telemetry
recipe during Boost 1.86 migration build.

boost version 1.86 support

Added fix for boost::asio::spawn overload issue reported similar
to chriskohlhoff/asio#1524. This error is reported by telemetry
recipe during Boost 1.86 migration build.

Error details

'''
tmp/work/armv7ahf-vfpv4d16-openbmc-linux-gnueabi/telemetry/1.0+git/
recipe-sysroot/usr/include/sdbusplus/asio/object_server.hpp:238:27:
error: call of overloaded 'spawn
'''

Proposed fix is to use default completion token.

Tested: verified build

Change-Id: I4c24869c1467a04ac40027bc4c50aebd1f3acb78
Signed-off-by: Jayanth Othayoth <ojayanth@gmail.com>

show more ...

b08d14dd05-Nov-2024 Patrick Williams <patrick@stwcx.xyz>

sdbus++: events: unpack an event from JSON

Generate code necessary to unpack a generated event from its
JSON representation.

Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
Change-Id: I7a28617f

sdbus++: events: unpack an event from JSON

Generate code necessary to unpack a generated event from its
JSON representation.

Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
Change-Id: I7a28617f3f0374968609328a44587b655a9141c1

show more ...

3b54a8e525-Oct-2024 Patrick Williams <patrick@stwcx.xyz>

sdbus++: simplify handling of empty parameter lists

Add a template specialization of the type-tuple generation for
empty parameter lists in order to simplify the Mako templates.
This eliminates a sp

sdbus++: simplify handling of empty parameter lists

Add a template specialization of the type-tuple generation for
empty parameter lists in order to simplify the Mako templates.
This eliminates a special case for empty parameter lists in
multiple places.

Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
Change-Id: I7ca8d962ab1c7a65e0ad6d80ece1cd7e3847f2c6

show more ...

fc0bb99611-Oct-2024 Patrick Williams <patrick@stwcx.xyz>

bus: un-inline functions

Due to additional upstream error results, the bus creation functions
need better error handling. This will result in larger functions
that are no longer a direct sd-bus cal

bus: un-inline functions

Due to additional upstream error results, the bus creation functions
need better error handling. This will result in larger functions
that are no longer a direct sd-bus call and probably shouldn't be
inlined. Move the functions to the `bus.cpp` file.

Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
Change-Id: If141ef74a62fd04b3bbf58b0720da2a9410481a7

show more ...

4b3720f810-Oct-2024 Patrick Williams <patrick@stwcx.xyz>

async: context: use new_bus by default

There are two primary methods for creating a generic bus:
* new_default
* new_bus

The "default" methods use TLS to get a shared bus for the thread. Thi

async: context: use new_bus by default

There are two primary methods for creating a generic bus:
* new_default
* new_bus

The "default" methods use TLS to get a shared bus for the thread. This
is likely not the desired bus to use for async operations because:

1. Currently a separate thread is used for the message processing.
2. Some existing synchronous code throughout openbmc uses
`new_default` instead of referencing an existing bus, which could
interfere with the async context.

Switch to using `new_bus` by default to ensure we get a fresh, unused
and unshared bus in the typical case.

Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
Change-Id: I1fd27de7bce9a8737294a5ab8e63e0dbe1afc8c3

show more ...

c012fde407-Oct-2024 Patrick Williams <patrick@stwcx.xyz>

events: add severity to class generation

Use the severity field to add to the class generation for use
by phosphor-logging to commit entries.

Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
Cha

events: add severity to class generation

Use the severity field to add to the class generation for use
by phosphor-logging to commit entries.

Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
Change-Id: I82bb8482c0f95435275fb3a1fcdcb37bd29fc7ec

show more ...

760adffd05-Oct-2024 Patrick Williams <patrick@stwcx.xyz>

events: add non-template base class

In order to allow non-template implementations that interact with
the `sdbusplus::excception::generated_event<T>` class, it is useful
to have a non-template base

events: add non-template base class

In order to allow non-template implementations that interact with
the `sdbusplus::excception::generated_event<T>` class, it is useful
to have a non-template base class. Add the `to_json` there for use
by phosphor-logging.

Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
Change-Id: Ibed2c7c4fc0e23f1c82c4c003e16a6f438f7e68f

show more ...

14c4797c24-Sep-2024 Patrick Williams <patrick@stwcx.xyz>

sdbus++: events: create json for events

Create JSON for the events containing their metadata and leverage that
as the "message" portion of the `sd_bus_error`. This will allow
unpacking the message

sdbus++: events: create json for events

Create JSON for the events containing their metadata and leverage that
as the "message" portion of the `sd_bus_error`. This will allow
unpacking the message on a client side back to the original exception.

Tested:
```
$ busctl --user call net.poettering.Calculator /net/poettering/calculator net.poettering.Calculator Divide xx 5 0
Call failed: {"net.poettering.Calculator.DivisionByZero":{"FOO":"unused"}}
```

Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
Change-Id: I4edd76d983267f28e51c4aa41902d45f5d6da793

show more ...

a4bfefde24-Sep-2024 Patrick Williams <patrick@stwcx.xyz>

exception: move sd_bus_error_set calls to exception

In the future, generated exceptions will need to fill the sd_error
with something other than the "description" in order to pass more
metadata. Mo

exception: move sd_bus_error_set calls to exception

In the future, generated exceptions will need to fill the sd_error
with something other than the "description" in order to pass more
metadata. Move the sd_bus_error_set calls to exception as a virtual
function so this can be accomplished.

Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
Change-Id: I6e6947e4977701a8e7e27fef119bd35e837d866b

show more ...

1234567891011