From: Bartosz Golaszewski <brgl@bgdev.pl>
To: "Kent Gibson" <warthog618@gmail.com>,
"Linus Walleij" <linus.walleij@linaro.org>,
"Andy Shevchenko" <andriy.shevchenko@linux.intel.com>,
"Alexander Stein" <alexander.stein@mailbox.org>,
"David Kozub" <zub@linux.fjfi.cvut.cz>,
"Jan Kundrát" <jan.kundrat@cesnet.cz>,
"Michael Beach" <michaelb@ieee.org>,
"Jack Winch" <sunt.un.morcov@gmail.com>,
"Viresh Kumar" <viresh.kumar@linaro.org>
Cc: linux-gpio@vger.kernel.org, Bartosz Golaszewski <brgl@bgdev.pl>
Subject: [libgpiod v2][PATCH v6 0/5] bindings: cxx: implement C++ bindings for libgpiod v2.0
Date: Tue, 26 Apr 2022 14:50:18 +0200 [thread overview]
Message-ID: <20220426125023.2664623-1-brgl@bgdev.pl> (raw)
This rewrites the C++ bindings for libgpiod in order to work with v2.0
version of the C API. The C++ standard use is C++17 which is well
supported in GCC. The documentation covers the entire API so for details
please refer to it, the tests and example programs.
I suggested by Kent, I've also split the big patch into several subpatches
which are not bisectable but make the review easier.
I'm Cc'ing people who've worked on the C++ bindings over time too in
this iteration.
I didn't address all the issues Kent raised in his las review. For the
gpiomon example it's because I sent a separate patch fixing the non-blocking
behavior of the request file descriptor first.
For the potential edge_event iterator - I simply don't understand how it
would work or if it would be needed at all since the code using the buffer
and iterating over it is already quite brief.
We can sort that out once we have most of the code in master.
Bartosz Golaszewski (5):
bindings: cxx: remove old code
bindings: cxx: add v2 headers
bindings: cxx: add v2 tests
bindings: cxx: add examples
bindings: cxx: add implementation
Doxyfile.in | 4 +-
bindings/cxx/Makefile.am | 23 +-
bindings/cxx/chip-info.cpp | 74 ++
bindings/cxx/chip.cpp | 213 +++--
bindings/cxx/edge-event-buffer.cpp | 115 +++
bindings/cxx/edge-event.cpp | 135 +++
bindings/cxx/examples/Makefile.am | 16 +-
bindings/cxx/examples/gpiodetectcxx.cpp | 10 +-
bindings/cxx/examples/gpiofindcxx.cpp | 4 +-
bindings/cxx/examples/gpiogetcxx.cpp | 19 +-
bindings/cxx/examples/gpioinfocxx.cpp | 64 +-
bindings/cxx/examples/gpiomoncxx.cpp | 53 +-
bindings/cxx/examples/gpiosetcxx.cpp | 33 +-
bindings/cxx/exception.cpp | 119 +++
bindings/cxx/gpiod.hpp | 944 +-------------------
bindings/cxx/gpiodcxx/Makefile.am | 18 +
bindings/cxx/gpiodcxx/chip-info.hpp | 105 +++
bindings/cxx/gpiodcxx/chip.hpp | 179 ++++
bindings/cxx/gpiodcxx/edge-event-buffer.hpp | 129 +++
bindings/cxx/gpiodcxx/edge-event.hpp | 137 +++
bindings/cxx/gpiodcxx/exception.hpp | 158 ++++
bindings/cxx/gpiodcxx/info-event.hpp | 123 +++
bindings/cxx/gpiodcxx/line-config.hpp | 564 ++++++++++++
bindings/cxx/gpiodcxx/line-info.hpp | 176 ++++
bindings/cxx/gpiodcxx/line-request.hpp | 221 +++++
bindings/cxx/gpiodcxx/line.hpp | 274 ++++++
bindings/cxx/gpiodcxx/misc.hpp | 44 +
bindings/cxx/gpiodcxx/request-config.hpp | 163 ++++
bindings/cxx/gpiodcxx/timestamp.hpp | 122 +++
bindings/cxx/info-event.cpp | 102 +++
bindings/cxx/internal.cpp | 28 +
bindings/cxx/internal.hpp | 208 ++++-
bindings/cxx/iter.cpp | 60 --
bindings/cxx/line-config.cpp | 685 ++++++++++++++
bindings/cxx/line-info.cpp | 189 ++++
bindings/cxx/line-request.cpp | 225 +++++
bindings/cxx/line.cpp | 331 ++-----
bindings/cxx/line_bulk.cpp | 366 --------
bindings/cxx/misc.cpp | 20 +
bindings/cxx/request-config.cpp | 174 ++++
bindings/cxx/tests/Makefile.am | 28 +-
bindings/cxx/tests/check-kernel.cpp | 48 +
bindings/cxx/tests/gpio-mockup.cpp | 153 ----
bindings/cxx/tests/gpio-mockup.hpp | 94 --
bindings/cxx/tests/gpiod-cxx-test.cpp | 55 --
bindings/cxx/tests/gpiosim.cpp | 258 ++++++
bindings/cxx/tests/gpiosim.hpp | 69 ++
bindings/cxx/tests/helpers.cpp | 37 +
bindings/cxx/tests/helpers.hpp | 62 ++
bindings/cxx/tests/tests-chip-info.cpp | 109 +++
bindings/cxx/tests/tests-chip.cpp | 218 +++--
bindings/cxx/tests/tests-edge-event.cpp | 417 +++++++++
bindings/cxx/tests/tests-event.cpp | 280 ------
bindings/cxx/tests/tests-info-event.cpp | 198 ++++
bindings/cxx/tests/tests-iter.cpp | 21 -
bindings/cxx/tests/tests-line-config.cpp | 270 ++++++
bindings/cxx/tests/tests-line-info.cpp | 156 ++++
bindings/cxx/tests/tests-line-request.cpp | 490 ++++++++++
bindings/cxx/tests/tests-line.cpp | 494 ++--------
bindings/cxx/tests/tests-misc.cpp | 78 ++
bindings/cxx/tests/tests-request-config.cpp | 155 ++++
configure.ac | 1 +
62 files changed, 7406 insertions(+), 2912 deletions(-)
create mode 100644 bindings/cxx/chip-info.cpp
create mode 100644 bindings/cxx/edge-event-buffer.cpp
create mode 100644 bindings/cxx/edge-event.cpp
create mode 100644 bindings/cxx/exception.cpp
create mode 100644 bindings/cxx/gpiodcxx/Makefile.am
create mode 100644 bindings/cxx/gpiodcxx/chip-info.hpp
create mode 100644 bindings/cxx/gpiodcxx/chip.hpp
create mode 100644 bindings/cxx/gpiodcxx/edge-event-buffer.hpp
create mode 100644 bindings/cxx/gpiodcxx/edge-event.hpp
create mode 100644 bindings/cxx/gpiodcxx/exception.hpp
create mode 100644 bindings/cxx/gpiodcxx/info-event.hpp
create mode 100644 bindings/cxx/gpiodcxx/line-config.hpp
create mode 100644 bindings/cxx/gpiodcxx/line-info.hpp
create mode 100644 bindings/cxx/gpiodcxx/line-request.hpp
create mode 100644 bindings/cxx/gpiodcxx/line.hpp
create mode 100644 bindings/cxx/gpiodcxx/misc.hpp
create mode 100644 bindings/cxx/gpiodcxx/request-config.hpp
create mode 100644 bindings/cxx/gpiodcxx/timestamp.hpp
create mode 100644 bindings/cxx/info-event.cpp
create mode 100644 bindings/cxx/internal.cpp
delete mode 100644 bindings/cxx/iter.cpp
create mode 100644 bindings/cxx/line-config.cpp
create mode 100644 bindings/cxx/line-info.cpp
create mode 100644 bindings/cxx/line-request.cpp
delete mode 100644 bindings/cxx/line_bulk.cpp
create mode 100644 bindings/cxx/misc.cpp
create mode 100644 bindings/cxx/request-config.cpp
create mode 100644 bindings/cxx/tests/check-kernel.cpp
delete mode 100644 bindings/cxx/tests/gpio-mockup.cpp
delete mode 100644 bindings/cxx/tests/gpio-mockup.hpp
delete mode 100644 bindings/cxx/tests/gpiod-cxx-test.cpp
create mode 100644 bindings/cxx/tests/gpiosim.cpp
create mode 100644 bindings/cxx/tests/gpiosim.hpp
create mode 100644 bindings/cxx/tests/helpers.cpp
create mode 100644 bindings/cxx/tests/helpers.hpp
create mode 100644 bindings/cxx/tests/tests-chip-info.cpp
create mode 100644 bindings/cxx/tests/tests-edge-event.cpp
delete mode 100644 bindings/cxx/tests/tests-event.cpp
create mode 100644 bindings/cxx/tests/tests-info-event.cpp
delete mode 100644 bindings/cxx/tests/tests-iter.cpp
create mode 100644 bindings/cxx/tests/tests-line-config.cpp
create mode 100644 bindings/cxx/tests/tests-line-info.cpp
create mode 100644 bindings/cxx/tests/tests-line-request.cpp
create mode 100644 bindings/cxx/tests/tests-misc.cpp
create mode 100644 bindings/cxx/tests/tests-request-config.cpp
--
2.32.0
next reply other threads:[~2022-04-26 12:51 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-04-26 12:50 Bartosz Golaszewski [this message]
2022-04-26 12:50 ` [libgpiod v2][PATCH v6 1/5] bindings: cxx: remove old code Bartosz Golaszewski
2022-04-26 12:50 ` [libgpiod v2][PATCH v6 2/5] bindings: cxx: add v2 headers Bartosz Golaszewski
2022-05-05 8:20 ` Bartosz Golaszewski
2022-04-26 12:50 ` [libgpiod v2][PATCH v6 3/5] bindings: cxx: add v2 tests Bartosz Golaszewski
2022-04-26 12:50 ` [libgpiod v2][PATCH v6 4/5] bindings: cxx: add examples Bartosz Golaszewski
2022-04-26 12:50 ` [libgpiod v2][PATCH v6 5/5] bindings: cxx: add implementation Bartosz Golaszewski
2022-04-27 6:01 ` Kent Gibson
2022-05-02 12:34 ` Bartosz Golaszewski
2022-05-02 13:54 ` Kent Gibson
2022-05-02 17:41 ` Bartosz Golaszewski
2022-05-03 8:04 ` Kent Gibson
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220426125023.2664623-1-brgl@bgdev.pl \
--to=brgl@bgdev.pl \
--cc=alexander.stein@mailbox.org \
--cc=andriy.shevchenko@linux.intel.com \
--cc=jan.kundrat@cesnet.cz \
--cc=linus.walleij@linaro.org \
--cc=linux-gpio@vger.kernel.org \
--cc=michaelb@ieee.org \
--cc=sunt.un.morcov@gmail.com \
--cc=viresh.kumar@linaro.org \
--cc=warthog618@gmail.com \
--cc=zub@linux.fjfi.cvut.cz \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.