From patchwork Tue Nov 15 09:07:52 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Naushir Patuck X-Patchwork-Id: 17797 Return-Path: X-Original-To: parsemail@patchwork.libcamera.org Delivered-To: parsemail@patchwork.libcamera.org Received: from lancelot.ideasonboard.com (lancelot.ideasonboard.com [92.243.16.209]) by patchwork.libcamera.org (Postfix) with ESMTPS id 90D04BE08B for ; Tue, 15 Nov 2022 09:08:10 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 4470363088; Tue, 15 Nov 2022 10:08:10 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org; s=mail; t=1668503290; bh=s2YTQygTvSeLyPnuHS2nRt//taGrUtun4/B03wSKMcQ=; h=To:Date:In-Reply-To:References:Subject:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To: From; b=N2UqrqBazNrcxqR8AK8Hj+acuYhBYIqO8d2RwCc89yj0WV3Sfs2b3o+DCZkIHONYl NfV2o2pt2MZEfVEL9ch2vIkFLWfMKBSdDFRCDVqXq4CnK9BzjmxEE2hWPINkO4Rv3R wXbkfLvTl84ufgEdULsTUPr2BgNlJ08h6ksh2ArdRzNtq/ptAHd9gIeH4jq/cWJITB I0avyAVzDvSY3JQWT8AWfQ/iLayORFFDU8j4aPG/9xDth6r3ncKKOs9A4cF+3SRBla rrYZtJaPtjbrLaBge81OGvwjy008V2ykceVW9ugyQ2B7NDjWnu8c8G8zq/TODQ6lAU oeR9tzQEJTUmQ== Received: from mail-wr1-x431.google.com (mail-wr1-x431.google.com [IPv6:2a00:1450:4864:20::431]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id B29BD63094 for ; Tue, 15 Nov 2022 10:08:04 +0100 (CET) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (2048-bit key; unprotected) header.d=raspberrypi.com header.i=@raspberrypi.com header.b="OicspHLj"; dkim-atps=neutral Received: by mail-wr1-x431.google.com with SMTP id z14so22945306wrn.7 for ; Tue, 15 Nov 2022 01:08:04 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=raspberrypi.com; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=U1yeWuA5xm3xCJOhL9gRZMk/o1jcW8BC8T8GrBzPs80=; b=OicspHLjy7TfH0tH5RathjH5fnXbaIoDIpYvTk559N6oc5vNK4NZM07pfLjyL0coRg dAqHEluOjSd/meUvj/zQ0/06jTqSTp2iwdy1AccDh2L5iDzUawZHj71ee+nPrVRQ0+ss ZI12eupJ/hnIQb6DwVmGu5o6wv6l7iBYvOqHL5li4JQUlakc8c/g+IirFjkGNYl4/zt6 Batde4Gf5oPuOWDuu8aVThRl3dqAt3icxYNOjmzwUM6XcIDah3aCtQTeI+F9dHGVuWgH gVpF0psZ+BNt5ThzOZsJRr1SbWUvTwpj8CB4ab+0dqnpdyALZaAA0fY3lHOlHi+Pme9T ceBw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=U1yeWuA5xm3xCJOhL9gRZMk/o1jcW8BC8T8GrBzPs80=; b=wuxX59nZsBko7hI+qivM11K7to9z32marehTCg5lkc2XrYoLMIqN/PM3n1SHlvTZWJ tO1W9HUxBSAT2vXQyfr0RmHtuUU1u4mtzfkTvmPCXAMlqOUcIEzkrL4jCmj+nX2AQsV1 AJ/3qjOoVlQ0Q0Ik6crSAKATLutknoI+PF32XAgBPzroEWXYlLh1wzPqyv1kVhz5ZJNK voTiRLtFGuTwkQT+ZzSEjfHmSuYsMv5RPIGOSepaabejP3pOfcl3k/uc/JgY6YLq/VLN 1S5iaHg19HOKtKC3DXmY3UA8WxEIrKsQcf16uRk+W6L9TrPka0pn2FfsBYEydaA8oIE0 AWNw== X-Gm-Message-State: ANoB5pmOZzTHGT0PEJKqdDl5SS0Qe26svb2XUo5JEV9Gw2P4rdhydCzP n/JCxp9xAkXanuyCZ1DIpQ+0TwmI48mJUg== X-Google-Smtp-Source: AA0mqf5Yjpiy1UQK1tGn7OBxFiqjRIuZ5+neWAji8wUYJQoYA6jJPd09pisku+Pb30UnR97vhm6qxw== X-Received: by 2002:a5d:4051:0:b0:236:715c:aaa6 with SMTP id w17-20020a5d4051000000b00236715caaa6mr9815435wrp.25.1668503284068; Tue, 15 Nov 2022 01:08:04 -0800 (PST) Received: from naush-laptop.localdomain ([93.93.133.154]) by smtp.gmail.com with ESMTPSA id p25-20020a05600c1d9900b003c64c186206sm15143696wms.16.2022.11.15.01.08.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 15 Nov 2022 01:08:03 -0800 (PST) To: libcamera-devel@lists.libcamera.org Date: Tue, 15 Nov 2022 09:07:52 +0000 Message-Id: <20221115090755.2921-6-naush@raspberrypi.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20221115090755.2921-1-naush@raspberrypi.com> References: <20221115090755.2921-1-naush@raspberrypi.com> MIME-Version: 1.0 Subject: [libcamera-devel] [PATCH v6 5/8] ipa: raspberrypi: Add RPiController::Metadata::mergeCopy X-BeenThere: libcamera-devel@lists.libcamera.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Naushir Patuck via libcamera-devel From: Naushir Patuck Reply-To: Naushir Patuck Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" 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 Reviewed-by: Kieran Bingham Reviewed-by: David Plowman --- src/ipa/raspberrypi/controller/metadata.h | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/ipa/raspberrypi/controller/metadata.h b/src/ipa/raspberrypi/controller/metadata.h index 0f7ebfaf4c25..ddce491784e9 100644 --- a/src/ipa/raspberrypi/controller/metadata.h +++ b/src/ipa/raspberrypi/controller/metadata.h @@ -78,6 +78,16 @@ public: data_.merge(other.data_); } + void mergeCopy(const Metadata &other) + { + std::scoped_lock lock(mutex_, other.mutex_); + /* + * If the metadata key exists, ignore this item and copy only + * unique key/value pairs. + */ + data_.insert(other.data_.begin(), other.data_.end()); + } + template T *getLocked(std::string const &tag) {