sdbusplus updates (client-bindings and namespace)

Lei Yu yulei.sh at bytedance.com
Fri May 5 19:09:53 AEST 2023


On Thu, May 4, 2023 at 6:23 AM Patrick Williams <patrick at stwcx.xyz> wrote:
>
> Greetings,
>
> TL;DR: I have two announcements of changes in sdbusplus:
>
>     1. Async client bindings using C++20 coroutines are now available
>        for experimentation.

Great work!

>     2. The namespace for server bindings has changed, but the old
>        namespace is preserved for a period of ~6 months.
>
> ----
>
> As part of developing the async client bindings, I fixed a mistake I
> made in 2016, which was choosing a terrible convention for the
> namespaces of the generated server bindings:
>
>     Interface: xyz.openbmc_project.Object.Enable
>     Old Class: sdbusplus::xyz::openbmc_project::Object::server::Enable
>     New Class: sdbusplus::server::xyz::openbmc_project::object::Enable
>     Client Class: sdbusplus::client::xyz::openbmc_project::object::Enable

The previous class was using `Object` but now with the new namespace
it becomes `object`, is it intended about the upper-case `O` becoming
the lower-case `o`?
If yes, why the `Enable` still kept the upper-case `E`?
Do we have a rule that all the strings other than the last part should
be lower-case?

> Next steps:
>
>     - Probably some bug fixes as other eyes start using this.
>
>     - Implement something like `async-server.hpp` to create async server
>       bindings to go along with the clients, which will allow a fully
>       async daemon without Boost (and with a lot cleaner code than ASIO
>       callbacks).

Looking forward to the server binding!
-- 
BRs,
Lei YU


More information about the openbmc mailing list