Re: [libgpiod] cxx bindings: time_point vs duration

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Oct 22, 2020 at 2:22 PM Jack Winch <sunt.un.morcov@xxxxxxxxx> wrote:
>
> > Why would that be a shame? We have the chance to rework the API of the
> > entire package, I want to give ourselves some time to get it right
> > before we carve anything in stone for an indefinite period of time.
> > There's no rush, really.
>
> You're right. :)
>
> I will start the talk with you next week regarding ABI compatibility.
> I'll give you a rundown of the issues, the potential solutions and we
> will discuss the usage of libgpiod and the C++ bindings.
>

Hi Jack!

I started reading on my own and I think I now have a slightly better
idea about C++ and its ABI. I also see what a mess the original
libgpiod bindings are in terms of ABI compatibility but fear not!
Right now (v2.0) is the time to make it better! :)

At a personal level I'm not too concerned about the ABI compatibility
of C++ bindings - I much more care about the API. This is because
libgpiod is aimed mostly at bespoke embedded distros (yocto,
buildroot, openwrt etc.) I understand however that it's an important
issue for distros.

I didn't know any better at the time of writing libgpiodcxx so I just
put all private members in the main header, exposing them to the users
of the library. I'm not sure why I didn't realize that C++ classes are
basically C structs (and exposing them amounts to exposing struct in a
C header) but I just didn't know any better.

I assume that you'll either propose to use the Pimpl pattern or a
header-only library. I noticed that Pimpl is what Qt5 uses while
header-only is more of a boost thing. If so - the timing is great as
I'm open to either solution for libgpiod v2.0.

Best regards,
Bartosz Golaszewski



[Index of Archives]     [Linux SPI]     [Linux Kernel]     [Linux ARM (vger)]     [Linux ARM MSM]     [Linux Omap]     [Linux Arm]     [Linux Tegra]     [Fedora ARM]     [Linux for Samsung SOC]     [eCos]     [Linux Fastboot]     [Gcc Help]     [Git]     [DCCP]     [IETF Announce]     [Security]     [Linux MIPS]     [Yosemite Campsites]

  Powered by Linux