[{"id":25115,"web_url":"https://patchwork.libcamera.org/comment/25115/","msgid":"<CAHW6GY+5H6voTrjsenJzL2P_62dOh4xv-KW0NUkLJA=YepeB1A@mail.gmail.com>","date":"2022-09-23T10:13:53","subject":"Re: [libcamera-devel] [PATCH v2 4/7] ipa: raspberrypi: Add\n\tRPiController::Metadata::mergeCopy","submitter":{"id":42,"url":"https://patchwork.libcamera.org/api/people/42/","name":"David Plowman","email":"david.plowman@raspberrypi.com"},"content":"Hi Naush\n\nThanks for the patch.\n\nOn Mon, 5 Sept 2022 at 08:40, Naushir Patuck via libcamera-devel\n<libcamera-devel@lists.libcamera.org> wrote:\n>\n> Add a new member function to RPiController::Metadata that copies unique\n> key/value pairs from one object to the other. This is different from\n> std::map::merge that would remove the key/value pairs from the source object.\n>\n> Signed-off-by: Naushir Patuck <naush@raspberrypi.com>\n> ---\n>  src/ipa/raspberrypi/controller/metadata.h | 12 ++++++++++++\n>  1 file changed, 12 insertions(+)\n>\n> diff --git a/src/ipa/raspberrypi/controller/metadata.h b/src/ipa/raspberrypi/controller/metadata.h\n> index 0f7ebfaf4c25..3816e9f8536d 100644\n> --- a/src/ipa/raspberrypi/controller/metadata.h\n> +++ b/src/ipa/raspberrypi/controller/metadata.h\n> @@ -78,6 +78,18 @@ public:\n>                 data_.merge(other.data_);\n>         }\n>\n> +       void mergeCopy(Metadata &other)\n> +       {\n> +               std::scoped_lock lock(mutex_, other.mutex_);\n> +               for (auto &kv : other.data_) {\n> +                       /*\n> +                        * If the metadata key exists, ignore this item and copy\n> +                        * only unique key/value pairs.\n> +                        */\n> +                       data_.insert(kv);\n> +               }\n\nJust wondering if there's something like\n\ndata_.insert(other.data_.begin(), other.data_.end());\n\nthat would do what you want? Not sure, I might be completely wrong...\n\nDavid\n\n> +       }\n> +\n>         template<typename T>\n>         T *getLocked(std::string const &tag)\n>         {\n> --\n> 2.25.1\n>","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id 2F5C1BD16B\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 23 Sep 2022 10:14:08 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 218F962237;\n\tFri, 23 Sep 2022 12:14:07 +0200 (CEST)","from mail-lf1-x133.google.com (mail-lf1-x133.google.com\n\t[IPv6:2a00:1450:4864:20::133])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 6A018621DD\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 23 Sep 2022 12:14:05 +0200 (CEST)","by mail-lf1-x133.google.com with SMTP id 10so1112950lfy.5\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 23 Sep 2022 03:14:05 -0700 (PDT)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1663928047;\n\tbh=6qzCY7nSAT9smtBR2Igm3OV/FSE+sT8VhIYu22P2N+c=;\n\th=References:In-Reply-To:Date:To:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc:\n\tFrom;\n\tb=Dtpb+v8pY0y5Zj673P+TdAYt2Iiam/EzNRFF/ypbfiNkUwsPZ3J26VluxywQwiMuo\n\tZX8QBAGs4iqmZ8r/kBlt4/6M+4qbJwbqvfbw7ojT0vgBnLV30RvMW9WiwumrcGWDeq\n\tiP1kuuzps5gBRDgHVmKiJGxNzcA5/+jd39vvUe5NraY68kgnHy2MXyxp/sGdhsy8Pp\n\tDxEuEgDOXNQJuMn64UsH2UOjgmT6xbkUZl3n1gq8N7SzD+alJ00pK/qP8Dq4o3vcrI\n\tA9GS/5J6IQxm5VMvIl6k6ciAj/9Qq/854tWqL85GoS2DO1gdECHdQXhoQzeJM9U9/C\n\tBf6v6+p0SOvlg==","v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=raspberrypi.com; s=google;\n\th=cc:to:subject:message-id:date:from:in-reply-to:references\n\t:mime-version:from:to:cc:subject:date;\n\tbh=VTC6CgACMgSNldH5BHV9B61D3MF9IrS1enaymKSIXPQ=;\n\tb=OEuqqzrjBXaI66E78Uor4dQxf4WNImyW1pAakvQ3uIvLCAJSrHAs0NPosP7Raq7k2w\n\tZE+GySpxlEhjChL26dexWSjRe3KXRQwBsiAJcnXwqCvwRwJalJPzf7tnD9MfnSJps7ed\n\tZkQyaOuygLBKU0Ce4De27kFfUySgjQQWWNNtaI8T8swJdL7KLFWXlhJ1WJWIWfAxdeEI\n\tep/SNAXJiiOy5LOZMq9lqI8h3GQ+SzfQ1oiqsqAvhUxpwicEZJQdYA24hrJLRLwo42sR\n\tpIUHouiMwEH3UWutEH0KKvKWBvmjg1cBHGYrj2dO5BQeC1SNZ3E5ZAcfQaVif+kFmQk1\n\tsI/w=="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (2048-bit key; \n\tunprotected) header.d=raspberrypi.com\n\theader.i=@raspberrypi.com\n\theader.b=\"OEuqqzrj\"; dkim-atps=neutral","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20210112;\n\th=cc:to:subject:message-id:date:from:in-reply-to:references\n\t:mime-version:x-gm-message-state:from:to:cc:subject:date;\n\tbh=VTC6CgACMgSNldH5BHV9B61D3MF9IrS1enaymKSIXPQ=;\n\tb=1D1/q5N11lt5RifW+/HnCgIpkjS8/wrC4DPwjw9zVoOJJZtzRWVhlgeniCDaEdaJAD\n\tChsUzeLTqfBR9GVG8BNLRI8unOdZBT12KHtXULqBzssXx2lfkszHflN6UkSIadbXbXLk\n\tpmxMQj1JlZxAhDfKiXgZGITcD/qAtGaOMx/G0Yhc5LUaYtzyS6CC9nzMBUa55+G5/AP1\n\t4+ub92SC4xng3gHT2xFcJp4lgP0lA4YtSVAk8JvkxmAXtG9Lap2uxitBCxsqz2Svw6H6\n\t7VAMrgnwj1cmpcPslCxJzOlT7VFlk7s6Bcc/gNALHMV5cFMDVberjw2bFDNfY3poXJjf\n\tEAWw==","X-Gm-Message-State":"ACrzQf0zLVlc8bICoDWFqiw88l9XuQ+dkYxHYmV5U6xz0Oth02h9POyh\n\tQr1nPzxGGXlzkonWvNk+CE+WWEzxabtII9xFQOmzUw==","X-Google-Smtp-Source":"AMsMyM6zTLAK8uVCWUqtyc7/OUTkRZpVGIgiQWAOPhxCuAz2JUk9p3rbyknu6sycVInolaH9OmL0525vVjRO6FMnwsU=","X-Received":"by 2002:a05:6512:3b20:b0:498:d7bc:28af with SMTP id\n\tf32-20020a0565123b2000b00498d7bc28afmr2810423lfv.65.1663928044758;\n\tFri, 23 Sep 2022 03:14:04 -0700 (PDT)","MIME-Version":"1.0","References":"<20220905073956.7342-1-naush@raspberrypi.com>\n\t<20220905073956.7342-5-naush@raspberrypi.com>","In-Reply-To":"<20220905073956.7342-5-naush@raspberrypi.com>","Date":"Fri, 23 Sep 2022 11:13:53 +0100","Message-ID":"<CAHW6GY+5H6voTrjsenJzL2P_62dOh4xv-KW0NUkLJA=YepeB1A@mail.gmail.com>","To":"Naushir Patuck <naush@raspberrypi.com>","Content-Type":"text/plain; charset=\"UTF-8\"","Subject":"Re: [libcamera-devel] [PATCH v2 4/7] ipa: raspberrypi: Add\n\tRPiController::Metadata::mergeCopy","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","From":"David Plowman via libcamera-devel <libcamera-devel@lists.libcamera.org>","Reply-To":"David Plowman <david.plowman@raspberrypi.com>","Cc":"libcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":25116,"web_url":"https://patchwork.libcamera.org/comment/25116/","msgid":"<CAHW6GYL9pYJ=URNn-5R7u2n3AU2qnqrcfV00JwO3K36ugYfxVQ@mail.gmail.com>","date":"2022-09-23T10:18:58","subject":"Re: [libcamera-devel] [PATCH v2 4/7] ipa: raspberrypi: Add\n\tRPiController::Metadata::mergeCopy","submitter":{"id":42,"url":"https://patchwork.libcamera.org/api/people/42/","name":"David Plowman","email":"david.plowman@raspberrypi.com"},"content":"Sorry, one more thing... the \"other\" parameter should probably be \"const\".\n\nThanks!\nDavid\n\nOn Fri, 23 Sept 2022 at 11:13, David Plowman\n<david.plowman@raspberrypi.com> wrote:\n>\n> Hi Naush\n>\n> Thanks for the patch.\n>\n> On Mon, 5 Sept 2022 at 08:40, Naushir Patuck via libcamera-devel\n> <libcamera-devel@lists.libcamera.org> wrote:\n> >\n> > Add a new member function to RPiController::Metadata that copies unique\n> > key/value pairs from one object to the other. This is different from\n> > std::map::merge that would remove the key/value pairs from the source object.\n> >\n> > Signed-off-by: Naushir Patuck <naush@raspberrypi.com>\n> > ---\n> >  src/ipa/raspberrypi/controller/metadata.h | 12 ++++++++++++\n> >  1 file changed, 12 insertions(+)\n> >\n> > diff --git a/src/ipa/raspberrypi/controller/metadata.h b/src/ipa/raspberrypi/controller/metadata.h\n> > index 0f7ebfaf4c25..3816e9f8536d 100644\n> > --- a/src/ipa/raspberrypi/controller/metadata.h\n> > +++ b/src/ipa/raspberrypi/controller/metadata.h\n> > @@ -78,6 +78,18 @@ public:\n> >                 data_.merge(other.data_);\n> >         }\n> >\n> > +       void mergeCopy(Metadata &other)\n> > +       {\n> > +               std::scoped_lock lock(mutex_, other.mutex_);\n> > +               for (auto &kv : other.data_) {\n> > +                       /*\n> > +                        * If the metadata key exists, ignore this item and copy\n> > +                        * only unique key/value pairs.\n> > +                        */\n> > +                       data_.insert(kv);\n> > +               }\n>\n> Just wondering if there's something like\n>\n> data_.insert(other.data_.begin(), other.data_.end());\n>\n> that would do what you want? Not sure, I might be completely wrong...\n>\n> David\n>\n> > +       }\n> > +\n> >         template<typename T>\n> >         T *getLocked(std::string const &tag)\n> >         {\n> > --\n> > 2.25.1\n> >","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id 9BCC3C0DA4\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 23 Sep 2022 10:19:11 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id D145D62238;\n\tFri, 23 Sep 2022 12:19:10 +0200 (CEST)","from mail-lf1-x12a.google.com (mail-lf1-x12a.google.com\n\t[IPv6:2a00:1450:4864:20::12a])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 852E0621DD\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 23 Sep 2022 12:19:09 +0200 (CEST)","by mail-lf1-x12a.google.com with SMTP id d42so1450730lfv.0\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 23 Sep 2022 03:19:09 -0700 (PDT)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1663928350;\n\tbh=Y91IU2+qYNjxQ6m00Rx21HrL/4TftlU+5MFyB75qrA8=;\n\th=References:In-Reply-To:Date:To:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc:\n\tFrom;\n\tb=W7izS754g/m3sKs05A3sGBkqu+/SRQG2lyUeBdHZ6NFX+28p4Hsasycc6lUZGtXcR\n\tv4WiRkb8DFL1GCozTsrbXOQISNHwNNkvLXFCLereQtpyDUr9c2Uox95gL1RUctRwod\n\tyWp2P8DvnMCb+tzsHuqIduUpzk6RrqPn4LGNLdjG0CYcy3KBS1LoHDCIdLgZi/SWq/\n\tT7NqDOuy4ypXB/8A8hI29iM35nL/Pp/S67xovOvHYSFrU2/832OoIZ2P9iRNitoRPW\n\tvi3CjMMqj4smmsyGeatqNp54SlKAxArchiI3Z25drIVCISNfoNsAs6tOIrLeij4xAl\n\tJ6l8VznMOj+QQ==","v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=raspberrypi.com; s=google;\n\th=cc:to:subject:message-id:date:from:in-reply-to:references\n\t:mime-version:from:to:cc:subject:date;\n\tbh=zn49VPBny6XLp1+z3W9LiN/A07uwWP+UyY2h48ksLhA=;\n\tb=YMaJR9r81ImaqaZWi8l33C16M49Ak3kjeFup9EqWLCTVHhTEohTLKy51kvpxX4rAfP\n\twfXmcSzGvDqj2siycFp6VrnYBUnPjBbr4Uw/B6FcXViIOQdsjoKUlZZFDPNeG01uHAGl\n\t1pYz0sl+Up6+krci4ZRaXHdOZ7RVlhElHXzK87OWNe65VAHsl4iB9swhI2ISOF8i9gl6\n\tsvJfe3/+vnDPdQ3mzv7hWCzgPBsnQKyVLE+fCzRN3udGiqgqAdVyXbciiSe9h1aw4JYO\n\tCeZVphWkkh/GdZZfMTOQacDi34kMjU191HMOKl7nviBGuee4Rhg5jaXUk2guPK+6kTvd\n\tSWvQ=="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (2048-bit key; \n\tunprotected) header.d=raspberrypi.com\n\theader.i=@raspberrypi.com\n\theader.b=\"YMaJR9r8\"; dkim-atps=neutral","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20210112;\n\th=cc:to:subject:message-id:date:from:in-reply-to:references\n\t:mime-version:x-gm-message-state:from:to:cc:subject:date;\n\tbh=zn49VPBny6XLp1+z3W9LiN/A07uwWP+UyY2h48ksLhA=;\n\tb=1TRiVVJGSqOdoybnrrid+CgnL5XXMV69Q25ytJDSZYiWTS+avrwSdegmg0zFqsCzk1\n\totn4COPcgIJWmMwMPf+UuVaKPjZmOVdmU8GeHND3MfOAum9xhJIZJ1t3MSMZU1YP4+NB\n\tednUme8N6Nq4D5v6VO/4hNGeMp0CU3KgM4eILwHM9XqavTTb7SnVcSsPmEF0PjE0FWcv\n\trcG+9uQ1qEFz/k0jPuCgt/1iZB+SKulUxDqOF4SRpjuqB5/TePmeeYDGrtKskOPyQhq8\n\tE4awxprgf4OofjAHL0LjMUr65pW2zyatm5HY6A1qE8kpKXBXAjQ7rO+wlX8ZyZgmopg2\n\tTkJg==","X-Gm-Message-State":"ACrzQf2GkWfNulbJsEtjx1u3THl6xLiHw4Ty+OJ4a5+XYqjWR4E4HstJ\n\tQzcqCsdcv9SThtINKjG9MX/UBYdm9qCGOz2/k5TyWrjz53s=","X-Google-Smtp-Source":"AMsMyM4Qhm7PvVGuJwcwoMXIhnVwH2kWsM2+oPy/53+Kn9slfL1dm9LZuCJnpOMhzO2XrQ0wJWFx5pn5EEdpPuN/mD0=","X-Received":"by 2002:a05:6512:1153:b0:49e:805:b473 with SMTP id\n\tm19-20020a056512115300b0049e0805b473mr3025399lfg.450.1663928348921;\n\tFri, 23 Sep 2022 03:19:08 -0700 (PDT)","MIME-Version":"1.0","References":"<20220905073956.7342-1-naush@raspberrypi.com>\n\t<20220905073956.7342-5-naush@raspberrypi.com>\n\t<CAHW6GY+5H6voTrjsenJzL2P_62dOh4xv-KW0NUkLJA=YepeB1A@mail.gmail.com>","In-Reply-To":"<CAHW6GY+5H6voTrjsenJzL2P_62dOh4xv-KW0NUkLJA=YepeB1A@mail.gmail.com>","Date":"Fri, 23 Sep 2022 11:18:58 +0100","Message-ID":"<CAHW6GYL9pYJ=URNn-5R7u2n3AU2qnqrcfV00JwO3K36ugYfxVQ@mail.gmail.com>","To":"Naushir Patuck <naush@raspberrypi.com>","Content-Type":"text/plain; charset=\"UTF-8\"","Subject":"Re: [libcamera-devel] [PATCH v2 4/7] ipa: raspberrypi: Add\n\tRPiController::Metadata::mergeCopy","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","From":"David Plowman via libcamera-devel <libcamera-devel@lists.libcamera.org>","Reply-To":"David Plowman <david.plowman@raspberrypi.com>","Cc":"libcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]