[libcamera-devel] [PATCH v2 4/7] ipa: raspberrypi: Add RPiController::Metadata::mergeCopy
Naushir Patuck
naush at raspberrypi.com
Mon Sep 5 09:39:53 CEST 2022
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);
+ }
+ }
+
template<typename T>
T *getLocked(std::string const &tag)
{
--
2.25.1
More information about the libcamera-devel
mailing list