[libcamera-devel] [PATCH 0/2] libcamera: Add type-safe enum-based flags

Laurent Pinchart laurent.pinchart at ideasonboard.com
Sat Jul 25 13:49:51 CEST 2020


Hi Niklas,

On Sat, Jul 25, 2020 at 10:25:19AM +0200, Niklas Söderlund wrote:
> On 2020-07-25 02:08:39 +0300, Laurent Pinchart wrote:
> > Hello,
> > 
> > This small series contains two patches that I've carried in my tree for
> > some time, and that I think could be useful. Please see patches for
> > details. The API is influenced by https://doc.qt.io/qt-5/qflags.html but
> > goes a step further by disallowing some invalid usage of the operators
> > that Qt silently allows for internal implementation reasons.
> 
> This gives me a feeling of a solution looking for a problem :-) In my 
> view what one gains in type-safety one loses in the extra complexity in 
> the usage of this interface. LIBCAMERA_FLAGS_ENABLE_OPERATORS() is a 
> none obvious thing to do for example :-)

I partly agree with you :-) That's why I'm not pushing for this to get
merged, but thought it could be useful.

> That being said if you and others find it useful I'm not against it and 
> the code in this series is good and does what it says it should. For the 
> whole series,
> 
> Reviewed-by: Niklas Söderlund <niklas.soderlund at ragnatech.se>
> 
> > Laurent Pinchart (2):
> >   libcamera: flags: Add type-safe enum-based flags
> >   test: Add tests for the Flags class
> > 
> >  include/libcamera/flags.h     | 195 ++++++++++++++++++++++++++++++++
> >  include/libcamera/meson.build |   1 +
> >  src/libcamera/flags.cpp       | 192 ++++++++++++++++++++++++++++++++
> >  src/libcamera/meson.build     |   1 +
> >  test/flags.cpp                | 204 ++++++++++++++++++++++++++++++++++
> >  test/meson.build              |   1 +
> >  6 files changed, 594 insertions(+)
> >  create mode 100644 include/libcamera/flags.h
> >  create mode 100644 src/libcamera/flags.cpp
> >  create mode 100644 test/flags.cpp

-- 
Regards,

Laurent Pinchart


More information about the libcamera-devel mailing list