[libcamera-devel] [PATCH v5 4/5] ipa: raspberrypi: Add Merge method to RPiController::Metadata

David Plowman david.plowman at raspberrypi.com
Mon Apr 19 15:50:01 CEST 2021


Hi Naush

Thanks for implementing this!

On Mon, 19 Apr 2021 at 14:35, Naushir Patuck <naush at raspberrypi.com> wrote:
>
> Add a new Merge method to the Metadata class. This will move all
> key/value pairs between a source and destination metadata object. Once
> complete, the source Metadata object will be empty.
>
> Signed-off-by: Naushir Patuck <naush at raspberrypi.com>

Reviewed-by: David Plowman <david.plowman at raspberrypi.com>

Thanks!
David

> ---
>  src/ipa/raspberrypi/controller/metadata.hpp | 12 ++++++++++++
>  1 file changed, 12 insertions(+)
>
> diff --git a/src/ipa/raspberrypi/controller/metadata.hpp b/src/ipa/raspberrypi/controller/metadata.hpp
> index 319f2320fc70..1d3e941b3e52 100644
> --- a/src/ipa/raspberrypi/controller/metadata.hpp
> +++ b/src/ipa/raspberrypi/controller/metadata.hpp
> @@ -75,6 +75,18 @@ public:
>                 return *this;
>         }
>
> +       void Merge(Metadata &other)
> +       {
> +               std::lock_guard<std::mutex> lock(mutex_);
> +               std::lock_guard<std::mutex> other_lock(other.mutex_);
> +
> +               for (auto const &kv: other.data_)
> +                       data_[kv.first] = std::move(kv.second);
> +
> +               /* Render the other object as empty now! */
> +               other.data_.clear();
> +       }
> +
>         template<typename T>
>         T *GetLocked(std::string const &tag)
>         {
> --
> 2.25.1
>
> _______________________________________________
> libcamera-devel mailing list
> libcamera-devel at lists.libcamera.org
> https://lists.libcamera.org/listinfo/libcamera-devel


More information about the libcamera-devel mailing list