From a45de8e81b1b8a8f3ae2bfe531062ee294082a12 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Wed, 8 Jan 2025 11:09:34 +0000 Subject: ipa: rpi: Add erase()/eraseLocked() to RPiController::Metadata These functions erase a key/value pair from the metadata object. Signed-off-by: Naushir Patuck Reviewed-by: David Plowman Reviewed-by: Laurent Pinchart Signed-off-by: Kieran Bingham --- src/ipa/rpi/controller/metadata.h | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'src/ipa/rpi/controller') diff --git a/src/ipa/rpi/controller/metadata.h b/src/ipa/rpi/controller/metadata.h index b8844909..77d3b074 100644 --- a/src/ipa/rpi/controller/metadata.h +++ b/src/ipa/rpi/controller/metadata.h @@ -91,6 +91,12 @@ public: data_.insert(other.data_.begin(), other.data_.end()); } + void erase(std::string const &tag) + { + std::scoped_lock lock(mutex_); + eraseLocked(tag); + } + template T *getLocked(std::string const &tag) { @@ -111,6 +117,14 @@ public: data_[tag] = std::forward(value); } + void eraseLocked(std::string const &tag) + { + auto it = data_.find(tag); + if (it == data_.end()) + return; + data_.erase(it); + } + /* * Note: use of (lowercase) lock and unlock means you can create scoped * locks with the standard lock classes. -- cgit v1.2.1