[libcamera-devel] [PATCH v2 4/7] ipa: raspberrypi: Add RPiController::Metadata::mergeCopy
David Plowman
david.plowman at raspberrypi.com
Fri Sep 23 12:18:58 CEST 2022
Sorry, one more thing... the "other" parameter should probably be "const".
Thanks!
David
On Fri, 23 Sept 2022 at 11:13, David Plowman
<david.plowman at raspberrypi.com> wrote:
>
> Hi Naush
>
> Thanks for the patch.
>
> On Mon, 5 Sept 2022 at 08:40, Naushir Patuck via libcamera-devel
> <libcamera-devel at lists.libcamera.org> wrote:
> >
> > Add a new member function to RPiController::Metadata that copies unique
> > key/value pairs from one object to the other. This is different from
> > std::map::merge that would remove the key/value pairs from the source object.
> >
> > Signed-off-by: Naushir Patuck <naush at raspberrypi.com>
> > ---
> > src/ipa/raspberrypi/controller/metadata.h | 12 ++++++++++++
> > 1 file changed, 12 insertions(+)
> >
> > diff --git a/src/ipa/raspberrypi/controller/metadata.h b/src/ipa/raspberrypi/controller/metadata.h
> > index 0f7ebfaf4c25..3816e9f8536d 100644
> > --- a/src/ipa/raspberrypi/controller/metadata.h
> > +++ b/src/ipa/raspberrypi/controller/metadata.h
> > @@ -78,6 +78,18 @@ public:
> > data_.merge(other.data_);
> > }
> >
> > + void mergeCopy(Metadata &other)
> > + {
> > + std::scoped_lock lock(mutex_, other.mutex_);
> > + for (auto &kv : other.data_) {
> > + /*
> > + * If the metadata key exists, ignore this item and copy
> > + * only unique key/value pairs.
> > + */
> > + data_.insert(kv);
> > + }
>
> Just wondering if there's something like
>
> data_.insert(other.data_.begin(), other.data_.end());
>
> that would do what you want? Not sure, I might be completely wrong...
>
> David
>
> > + }
> > +
> > template<typename T>
> > T *getLocked(std::string const &tag)
> > {
> > --
> > 2.25.1
> >
More information about the libcamera-devel
mailing list